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