簡體   English   中英

Excel 2013 VBA Vlookup-功能錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM