|
▼Jaka さん:
>VBA上のMatch関数の使い方(エラー処理)はおいておいて、VBA上から他ブックを開かずにMatch関数は使えないと思います。
>閉じたままと言うなら、適当なセルに関数を入れて、その返り値を取得したらどうでしょうか?
がーーーーーーーん…他ブックを開かずにはできないんですね…
それならばVLookup関数で、と思って以下のようにしてみましたが、
Range("A4").Value = Application.WorksheetFunction.VLookup(AAA, Workbooks(nowPATH).Worksheets("TOTAL").Range("C12:C32"), 1, False)
…同様のエラーが出てしまうということは、
やっぱりVLookup関数も他ブックを開かずにはできないんですね。
けっきょく何がしたいのかといえば、
他ブックのC12:C32内に「AAA」があれば、その行のE〜Zまでの値を取得したいのです。
何行目かがわかれば、以下のマクロ(一部省略)でできることは確認できたのですが。
---------------------------------------
Dim nowPATH As String
nowPATH = "C:\Documents and Settings\(中略)\○○.xls"
Dim nowFILE As String
nowFILE = Dir(nowPATH)
Workbooks(nowFILE).Worksheets("TOTAL").Range("E" & i & ":Z" & i).Copy
ThisWorkbook.Worksheets("テスト1").Range("A2").PasteSpecial Paste:=xlValues
---------------------------------------
対象となるファイル数が、多ければ200以上にもなりかねないので、
ファイルを開かずに処理をしたいと考えてます。
もし何かいい方法をご存知でしたら、ぜひご教授ください。
なにとぞ宜しくお願いします。
|
|