|
こんばんは。
下記のようなbookが二つあります。
旧.xlsx
C列 D列
123 田中
456 山本
789 下田
新.xlsx
C列 D列
123 田中
111 神田
456 山本
555 佐藤
789 下田
まとめ.xlsx
A列 B列 C列
123 田中 変更なし
456 山本 変更なし
789 下田 変更なし
111 神田 追加
555 佐藤 追加
2つのbookのC列から一致するデータをまとめ.xlsxに書き出すのは
下記のように書きましたが
Worksheets("Sheet1").Cells(Lastrow, 1) = FR.Valueで、
インデックスが有効範囲ではありませんというエラーがでます。
また追加されているデータを書く方法もわからずにいます。
教えていただきたく、投稿させて頂きました。
よろしくお願いいたします。
Sub test()
Dim FL1 As Variant
Dim FL2 As Variant
Dim CROW1 As Long
Dim CROW2 As Long
Dim Range1, Range2 As Range
Dim CL1, CL2 As Range
Dim FR As Range
Dim Lastrow As Long
Dim i As Long
FL1 = "C:・・・\Desktop\旧.xlsx"
FL2 = "C:・・・\Desktop\新.xlsx"
Workbooks.Open FL1
CROW1 = Worksheets("旧").Cells(65536, 3).End(xlUp).Row
Set Range1 = Worksheets("旧").Range(Cells(2, 3), Cells(CROW1, 3))
Workbooks.Open FL2
CROW2 = Worksheets("新").Cells(65536, 3).End(xlUp).Row
Set Range2 = Worksheets("新").Range(Cells(2, 3), Cells(CROW2, 3))
For Each CL1 In Range1
Set FR = Range2.Find(what:=CL1.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not FR Is Nothing Then
Lastrow = ThisWorkbook.Worksheets("Sheet1").Cells(65536, 1).End(xlUp).Row + 1
For i = 1 To Lastrow
Worksheets("Sheet1").Cells(Lastrow, 1) = FR.Value
Worksheets("Sheet1").Cells(Lastrow, 2) = FR.Offset(, 1).Value
Worksheets("Sheet1").Cells(Lastrow, 3) = "変更なし"
Next
End If
Next
End Sub
|
|