dポイントプレゼントキャンペーン実施中!

Range("b1") = Cells.Find(What:=Range("a1")).Offset(0, 1)
上記のような式を使用すると、同シート内のA1に記載されている文字を検索し、
その隣のセルの内容を表示することができました。

今回求めたいのは、「A.xls」ファイルの「A1」セルに入力したコードと同じものを、
「B.xls」ファイルのC列の中で検索し、3つ隣のF列(同行)の内容を、
「A.xls」ファイルのA2に表示させるようにしたいです。

違うファイルから検索するにはどうしたらよいのでしょうか?
どなたかご教示お願いします。

A 回答 (1件)

方法1)


エクセルマクロでfindするためには、対象のブックを開いておかないといけません。
また、セルを触るためには「どこのシートにあるセルなのか」を明示的に指定しないと話になりません。

sub macro1()
workbooks.open filename:="c:\test\B.xls"
thisworkbook.worksheets("Sheet1").range("A2") = workbooks("B.xls").worksheets("Sheet1").range("C:C").find(what:=thisworkbook.worksheets("Sheet1").range("A1").value, lookin:=xlvalues, lookat:=xlwhole).offset(0, 3)
end sub




方法2)
ブックを「開かずに」値を参照してくるほぼ唯一の方法は、マクロを使わずに数式で計算させます。

sub macro2()
range("A2").formula = "=VLOOKUP(A1,'c:\test\[B.xls]Sheet1'!C:F,4,FALSE)"
range("A2").value = range("A2").value
end sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
解決しました。
大変助かりました。

お礼日時:2012/05/18 13:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!