Vlookup的VBA代码
当我在下面的Vlookup的VBA代码,vba,excel,Vba,Excel,当我在下面的vlookupVBA代码中引用特定单元格时,我可以得到返回正确答案的代码 Application.VLookup(Sheets("Setup").Cells(2, 1), Sheets("Download").Range("A:G"), 7, 0) 但是,如果用变量(VLDate)替换代码,则会出现错误 Application.VLookup(VLDate, Sheets("Download").Range("A:G"), 7, 0) 我尝试将DimVLDate设置为字符串,但这
vlookup
VBA代码中引用特定单元格时,我可以得到返回正确答案的代码
Application.VLookup(Sheets("Setup").Cells(2, 1),
Sheets("Download").Range("A:G"), 7, 0)
但是,如果用变量(VLDate
)替换代码,则会出现错误
Application.VLookup(VLDate, Sheets("Download").Range("A:G"), 7, 0)
我尝试将DimVLDate
设置为字符串,但这也不起作用
有什么建议吗?在您的示例
工作表(“设置”)。单元格(2,1)
不是字符串
单元格
返回一个范围
Dim VLDate As Range
Set VLDate = Sheet("Setup").Cells(2,1)
如果您的第一个示例有效,那么使用上面的代码设置VLDate的值应该会使您的第二个示例也有效
编辑
可能有点误解了你的问题,所以虽然上面的说法是正确的,但可能没有帮助
能否提供VLDate的示例值,以及单元格格式类型和查找范围中的示例值?我想我知道问题所在。
vlookup
的第一个输入必须与您要查找的数据类型相同。例如,如果正在搜索的单元格中只有数字,则尝试将VLDate标注为数字,如果尝试将其调暗为字符串,则将找不到匹配项,并将出现类型不匹配错误
您可以将VLDate设置为变量
,这更简单,但如果您要查找数字,请不要使用引号
为了调试目的,请尝试添加行
MsgBox(CStr(Application.VLookup(Sheets("Setup").Cells(2, 1), Sheets("Download").Range("A:G"), 7, 0))
如果你给一个msgbox添加了错误2042
it menas,因为它找不到匹配项,因此你应该使用错误的数据类型
使用字符串的唯一情况是,如果目标单元格的公式中包含类似于=“21”的内容,因为它是一个字符串
希望对您有所帮助您所说的
不起作用是什么意思
?你收到错误信息了吗?它找不到任何东西吗?您将VLookup
的结果返回给什么?提供更多代码和更多上下文,以便我们帮助您。根据MSDN: