[英]Excel 2013 VBA Vlookup-Function Error
我編寫了一個程序,該程序創建了一個資源概述。 在程序中,我想通過VBA設置vlookup-function。 如果我在工作表中手動設置vlookup-function(將公式寫入單元格中)( =SVERWEIS(B2;'MS Project'!A:H;2;FALSCH)
)(“ SVERWEIS”是德語單詞,表示“ VLOOKUP “,“ FALSCH”是德語單詞“ FALSE”),它工作正常,但是如果我使用下面的代碼行將此公式自動插入到單元格中,則不會。
rngTarget.Cells(i, col + 1).value = WorksheetFunction.VLookup(rngTarget.Range("B" & i), _
ThisWorkbook.Worksheets("MS Project").Range("A1:H2000"), 2, 0)
“ rngTarget”表示activeSheet的usedRange。
“ i”代表我正在使用的當前行。
下圖顯示了我在執行程序時遇到的運行時錯誤(1004)。
它說,無法分配WorksheetFunction-Object的Vlookup-Property。
編輯:執行此行之前,我檢查搜索的對象是否存在於“ Ms Project”中。 僅當它確實存在時,它才會設置vlookup-function。
解決方案:我發現了問題,我進行了更改:
rngTarget.Cells(i, col + 1).value = WorksheetFunction.VLookup(rngTarget.Range("B" & i), _
ThisWorkbook.Worksheets("MS Project").Range("A1:H2000"), 2, 0)
至:
rngTarget.Cells(i, col + 1).value = Application.VLookup(rngTarget.Range("B" & i).value, _
ThisWorkbook.Worksheets("MS Project").Range("A1:H2000"), 2, 0)
對於Lookup_value參數,您引用的是整個對象rngTarget.Range("B" & i)
,請嘗試添加.Value2
以僅返回此范圍的值。
即
rngTarget.Cells(i, col + 1).value = WorksheetFunction.VLookup(rngTarget.Range("B" & i).Value2, _
ThisWorkbook.Worksheets("MS Project").Range("A1:H2000"), 2, 0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.