文字列を入力として受け取る関数を作成し、この文字列をvlookupの引数として使用して、閉じられたブックから値を取得したいとします。データと文字列が同じワークシートの両方にあるとき閉じられたブックに参照するVBAのVlookup
次のコードは動作します:
Function get_value(inputString as String)
Dim dataRange as Range
Set dataRange = Range("A1:B4")
get_value = Application.WorksheetFunction.Vlookup(inputString, dataRange, 2, False)
End Function
は単純に動作しません(下記のコードのような)の範囲を参照する(私はこれが原因関数であると仮定しましたSubsのようにWorkbooks.Openを処理できません)。
Set workbookVariable = Application.Workbooks.Open(path_to_file)
dataRange = workbookVariable.Sheets(1).Range("A1:B4")
マイテーブル(デスクトップに保存された 'names.xls' として保存された)のようになります。私のような関数呼び出しをしたいしたい
A | B
1 Olivia | Spaghetti
2 John | Steak
3 Samuel | Rice
4 Brian | Chicken
:
= GET_VALUE(A1)とそれはA1の名前の食物を返すでしょう。
get_valueが他のブックでも機能するように、コードを調整するにはどうすればよいですか?
これはあなたにアイデアを与えるかもしれません、あなたはテストされていません。外部ワークブックをアクティブにして、 'Thisworkbook.Path&Application.PathSeparator&Range(" A1:B4 ")。Address(External:= true)'の直後のウィンドウから文字列を取得します。その一部を必要とし、そのワークブックへの接続を設定することができます。 – PatricK
https://stackoverflow.com/a/42800024/4539709 – 0m3r
0m3r、同じ質問ではなく、私は関数が必要です。 –