|
>Worksheets("Sheet1").Cells(Lastrow, 1) = FR.Valueで、
>インデックスが有効範囲ではありませんというエラーがでます。
Worksheets("Sheet1")の親Bookを明示していないからでしょう。
そのままだとActiveWorkbookのWorksheets("Sheet1")を指定しています。
つまり
>FL2 = "C:・・・\Desktop\新.xlsx"
これがActiveWorkbookになっています。
>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
ここでどういう動作をしているか理解されてますか?
>For i = 1 To Lastrow
>Next
これは不要ですよね?
そもそも、Findメソッドを使ってLoopしなくても良いと思います。
新.xlsx から まとめ.xlsx へ全データをコピーして、
作業列にMatch関数を使って 旧.xlsx を参照して、
あれば"変更なし"、無ければ"追加"で良くないですか?
|
|