Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vlookup的VBA代码_Vba_Excel - Fatal编程技术网

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)
我尝试将Dim
VLDate
设置为字符串,但这也不起作用


有什么建议吗?

在您的示例
工作表(“设置”)。单元格(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: