繁体   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