別bookのセルを参照するにはどうしたらよいでしょうか
Next Forを使用したマクロで、そのNext For構文内で、別ブックのセルを参照したいのですが、どうしたらよいでしょうか。
下記のように作成してみたのですが、テストしてみると、同ブック同シートの該当セルを参照しているようで、機能しません。下記の書き方では間違っているのでしょうね・・・。
マクロ初心者で、とても初歩的な質問で申し訳ないのですが、教えていただきたく質問させていただきました。よろしくお願いします。
必要なブックは開いている状態です。
Cells(i,_)はbook1・シート"AAA"のi行・_列目を参照し、
Cells(n,_)はbook2・シート"BBB"のn行・_列目を参照し、
Cells(s,_)はbook2・シート"BBB"のセルを参照してほしいのですが・・・。
(1) book1・シート"AAA"のi行18列目のセルとbook2・シート"BBB"のn行・1列目の値が同じであれば
(2) (book2・シート"BBB"のn行・1列目)の1行下をs行目としてs行・4列目のセルとbook1・シート"AAA"のi行28列目のセルが同値であれば
(3) s行4列目からs行9列目を”ClearContents”するという内容です。下記のマクロは全て記述しておりませんが、ここが間違っているのは確実だと思います。今後の勉強にも是非生かしていきたいと思っておりますので、どうぞよろしくお願いいたします。
Sub test01()
Dim n As Long
Dim i As Long
Dim s As Long
For i = 6 To Workbooks("book1.xlsx").Worksheets("AAA").Cells(Rows.Count, 16).End(xlUp).Row
If Cells(i, 16) = "" Then
Exit For
Else
For n = 4 To Workbooks("book2.xlsx").Worksheets("BBB").Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 16) <> "" And Cells(i, 18).Value = Cells(n, 1).Value Then
For s = n + 1 To Workbooks("book2.xlsx").Worksheets("BBB").Cells(Rows.Count, 4).End(xlUp).Row
If Cells(s, 1) <> "" Then
Exit For
ElseIf ..............
お礼
ありがとうございます。 こういうときに"INDIRECT"って使うんですね。 無事、解決しました。ありがとうございました。