| 
    
     |  | 初めて投稿致します。 よろしくお願いします。
 
 ・sheetA
 「A5:I20」に文字データが入っています。
 (途中に空白列有り。最終行は月度によって変動。)
 
 ・sheetB
 「A5:A30」に文字データが入っています。
 (途中に空白列有り。最終行は月度によって変動。)
 
 ・sheetAの「A5」列と同じ値のものがsheetBの「A5」列内に
 あった場合、その同じ値の行の「C列からI列」をsheetA→
 sheetBにコピーする。
 (sheetAもsheetBも都度、最終行が変わるので、文字デー
 タの範囲が変わる。)
 ・できれば、途中で並べ替えの作業等や作業列の作成はしたく
 ない。
 
 <例>
 【sheetA】
 A  B  C D E F G H I
 5  0001    ○ あ     ○ か
 6  0006    ○ い
 7
 8  0035        ○ ○ ○ き
 9  0018    ○ う         ○
 ・
 ・
 19  0099        ○   ○
 20  0102    ○ え
 
 
 【sheetB】
 sheetBは、最初はA列のみにデータがあり、C〜
 I列は空白の状態。
 5行目、6行目、9行目が、それぞれsheetAの5行目
 6行目、8行目と同じなので、それぞれのsheetAの
 A列でマッチしたC列〜I列をsheetBのC列〜I
 列にコピーして、下記の結果としたい。
 
 A  B  C D E F G H I
 5  0001    ○ あ     ○ か
 6  0006    ○ い
 7  0042
 8
 9  0035        ○ ○ ○ き
 10  0051
 ・
 ・
 30  0099        ○   ○
 
 
 これを下記のように記述したところ、うまくいかずに悩んでい
 ます。
 
 Dim r1 As Range, r2 As Range, c As Range
 Dim m As Variant
 
 Sheets(A).Select
 
 With Worksheets(A)
 Set r2 = .Range("A5", .Cells(.Rows.Count, 1).End(xlUp))
 End With
 With Worksheets(B)
 Set r1 = .Range("A5", .Cells(.Rows.Count, 1).End(xlUp))
 End With
 
 For Each c In r1
 m = Application.Match(c.Value2, r2, 0)
 If IsNumeric(m) Then
 r2.Item(m, 3).Resize(, 7).Copy c.Item(1, 3)
 End If
 Next
 
 別のところで、うまくいっていた事例を移植したのですが、
 (実のところ、中身がきちんと理解できていないので)どこ
 がマズイのかが見つけられませんでした。
 
 どなたか、ご助言いただけますと助かります。
 何とぞ、よろしくお願い致します。
 
 
 |  |