Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5902 / 13645 ツリー ←次へ | 前へ→

【48234】条件一致行を探し、日付・担当を転記 かおピ 07/4/9(月) 17:30 質問[未読]
【48237】Re:条件一致行を探し、日付・担当を転記 りん 07/4/9(月) 19:30 回答[未読]
【48241】Re:条件一致行を探し、日付・担当を転記 かおピ 07/4/9(月) 21:16 質問[未読]
【48243】Re:条件一致行を探し、日付・担当を転記 りん 07/4/9(月) 21:53 回答[未読]
【48247】Re:条件一致行を探し、日付・担当を転記 かおピ 07/4/9(月) 22:57 お礼[未読]
【48292】Re:条件一致行を探し、日付・担当を転記 かおピ 07/4/11(水) 23:18 質問[未読]

【48234】条件一致行を探し、日付・担当を転記
質問  かおピ  - 07/4/9(月) 17:30 -

引用なし
パスワード
   こんにちは、このような問題に直面しています。
知恵をお貸し下さい。よろしくお願いします。

Sheet1(分類表・未収入金表:日計表)
A:日計日  B:名前  C:月 D:日 E:金額 F:担当者
 4/9    鈴木一郎  4  4   550   松田
 4/9    田口 壮   4  2   2000  片山

Sheet2(未収明細表:月間集計表)
A:月 B:日 C:名前   D:金額  E:入金日 F:担当者
4  1   鈴木一郎  1050
4  1   浅田真央  980
4  2   田口 壮   2000
4  4   鈴木一郎  550

Sheet1 の日々の日計表の2名の条件と一致するものを
Sheet2 の中から探し、
A:月 B:日 C:名前   D:金額  E:入金日 F:担当者
4  1   鈴木一郎  1050
4  1   浅田真央  980
4  2   田口 壮   2000   4/9    片山
4  4   鈴木一郎  550    4/9    松田
 このように、入金日と担当者を転記したいのです。

【48237】Re:条件一致行を探し、日付・担当を転記
回答  りん E-MAIL  - 07/4/9(月) 19:30 -

引用なし
パスワード
   かおピ さん、こんばんわ。

>Sheet1 の日々の日計表の2名の条件と一致するものを
>Sheet2 の中から探し、
>A:月 B:日 C:名前   D:金額  E:入金日 F:担当者
>4  1   鈴木一郎  1050
>4  1   浅田真央  980
>4  2   田口 壮   2000   4/9    片山
>4  4   鈴木一郎  550    4/9    松田
> このように、入金日と担当者を転記したいのです。
担当者名が完全一致検索できて、重複がないとして。

Sub test()
  Dim ws1 As Worksheet, ws2 As Worksheet, r1 As Range
  Dim s1 As String, s2 As String, RR As Long, Rmax As Long
 
  'シートセット
  With Application.ActiveWorkbook
   Set ws1 = .Worksheets("Sheet1") '転記元
   Set ws2 = .Worksheets("Sheet2") '転記先
  End With
  '検索をかけて、ヒットしたら転記(重複はないとする)
  Rmax = ws2.Range("C65536").End(xlUp).Row
  For RR = 2 To Rmax
   If ws2.Cells(RR, 3).Value <> "" Then
     With ws1.Columns(2)
      Set r1 = .Find(what:=ws2.Cells(RR, 3).Value, After:=.Cells(1))
      If Not r1 Is Nothing Then
      '
        Do
         s1 = r1.Address
         If r1.Offset(0, 1).Value = ws2.Cells(RR, 1).Value And _
           r1.Offset(0, 2).Value = ws2.Cells(RR, 2).Value And _
           r1.Offset(0, 3).Value = ws2.Cells(RR, 4).Value Then
           '
           'Sheet1のCDEとSheet2のABDが一致したら
           ws2.Cells(RR, 5).Value = r1.Offset(0, -1).Value
           ws2.Cells(RR, 6).Value = r1.Offset(0, 4).Value
           Exit Do 'Loop終了
         End If
         Set r1 = .FindNext(r1)
        Loop While Not r1 Is Nothing And r1.Address <> s1
      End If
     End With
   End If
  Next
  '
  Set r1 = Nothing
  Set ws1 = Nothing: Set ws2 = Nothing
 
End Sub

こんな感じです。

【48241】Re:条件一致行を探し、日付・担当を転記
質問  かおピ  - 07/4/9(月) 21:16 -

引用なし
パスワード
   ▼りん さん:こんばんわ。。ありがとうございます。
うれしくて、感動しています。
しかし、かおピ、わからないとことがあります。1.〜3.です。すみません。

1. ("C65536") この数値の意味は、何でしょうか?
>  Rmax = ws2.Range("C65536").End(xlUp).Row
2. この RR は、1行目?という意味でしょうか?
>  For RR = 2 To Rmax
>   If ws2.Cells(RR, 3).Value <> "" Then
3.Sheet1 の日々の日計表の件数は、20行あり、日々、0〜3件です。
>     With ws1.Columns(2) ここの数字を 20でしょうか?
 
 本当にすみません。初歩的な簡単なことかもしれませんが、そこがわからないんです。解説がないとなかなかわかりません、よろしくお願いします。
本当にすみません。

【48243】Re:条件一致行を探し、日付・担当を転記
回答  りん E-MAIL  - 07/4/9(月) 21:53 -

引用なし
パスワード
   かおピ さん、こんばんわ、

>1. ("C65536") この数値の意味は、何でしょうか?
>>  Rmax = ws2.Range("C65536").End(xlUp).Row
セルC65536からEndキー+↑を押すと、C列の一番下のセルに移動します。
これをコードで書くと上のようになります(実際は、さらにそのセルのRowプロパティで行番号を取得しています)。

>2. この RR は、1行目?という意味でしょうか?
>>  For RR = 2 To Rmax
2行目からスタート(Rmax行まで処理)ということです。

>3.Sheet1 の日々の日計表の件数は、20行あり、日々、0〜3件です。
>>     With ws1.Columns(2) ここの数字を 20でしょうか?
ws1.Columns(2)で、ワークシート(ws1)のB列全体を意味するので、数字はそのままです。

【48247】Re:条件一致行を探し、日付・担当を転記
お礼  かおピ  - 07/4/9(月) 22:57 -

引用なし
パスワード
   ▼りん さん:こんばんわ。
ありがとうございます。とにかくシートと格闘します。(^o^)丿
本当にありがとうございます。感謝します。

【48292】Re:条件一致行を探し、日付・担当を転記
質問  かおピ  - 07/4/11(水) 23:18 -

引用なし
パスワード
   こんばんは 四苦八苦中の かおピです。

実は、実際使用している表ですが
セルを結合しています。例えばsheet1のB:名前→U46:Z47、F:担当者→AC46:AF47
sheet2のC:名前→D6:H6、D:金額→L6:P6
 どのようにしたらよいでしょうか?

Sheet1(分類表・未収入金表:日計表)
A:日計日  B:名前  C:月 D:日 E:金額 F:担当者
 4/9    鈴木一郎  4  4   550   松田
 4/9    田口 壮   4  2   2000  片山

Sheet2(未収明細表:月間集計表)
A:月 B:日 C:名前   D:金額  E:入金日 F:担当者
4  1   鈴木一郎  1050
4  1   浅田真央  980
4  2   田口 壮   2000
4  4   鈴木一郎  550

5902 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free