2016-05-01 8 views
3

2つのワークブックがあります。 (マクロを含む)最初のブックでは、値strCompanyが2番目のブック(tmp_workbook)の列Aに存在するかどうかを判断するためにvlookupを実行しようとしています。vbaでvlookupを実行する

Iは、次のVBAのエラーを取得: 「)WorksheetFunctionクラスのVLOOKUPプロパティを取得できません」一列に使用

Dim company_exists_in_list As Variant 
Dim main_workbook As Workbook, tmp_workbook As Workbook 

strCompany = main_workbook.Sheets("Input ID").Cells(10 + i + b * (j - 1), 3).Value 

company_exists_in_list = Application.WorksheetFunction.VLookup(strCompany, tmp_workbook.ActiveSheet.Range("A1:A100000"), 1, False) 
+0

'StrCompany'が' Column A'に存在しない場合、エラーが発生します。たぶん '.Find'を使って試してみてください。一致が見つからない場合は、より優雅に処理します。 –

+3

' .WorkSheetFunction'部分を削除してください。これにより、エラーが変数に反映されます。エラーの変数をテストします。 –

答えて

0

VLookup、のみ同じ値を返します。値が存在するかどうかを確認するにはCountIfを使用できます。

company_exists_in_list =Application.WorksheetFunction.CountIf(tmp_workbook.ActiveSheet.Range("A1:A100000"),strCompany) 

値が0と異なる場合、会社が存在します。