带date的Vba Vlookup返回types不匹配错误

我想在VBA中find一个带有Vlookup函数的值,但是在msgbox行上出现types不匹配的错误。

lookup_value是明天

这是代码

Sub FINDDATA() Dim Giov As Date Dim ImpPag As Variant Giov = Format(Date + 1, "Short Date") ImpPag = Application.VLookup(Giov, Range("A5:B9"), 2, False) MsgBox ImpPag End Sub 

这里是数组

 date value 05-mar-15 €1.000,00 12-mar-15 €2.000,00 19-mar-15 €3.000,00 26-mar-15 €4.000,00 

我可以帮忙吗? 谢谢

在Excel中,date通常以数字forms存储,并且只在格式中显示为string。 您可以通过更改电子表格中date单元格上的数字格式来进行检查。

在这种情况下,您查找的date(05/03/2015)实际上存储为42068.如果将Giov声明为Long数据types,则可以将当前date+1传递给查找。 我已经添加了一个msgbox,所以你可以看到存储的date为一个长整数在查找之前:

 Sub FINDDATA() Dim Giov As Long Dim ImpPag As Variant Giov = Date + 1 MsgBox Giov ImpPag = Application.VLookup(Giov, Range("A5:B9"), 2, False) MsgBox ImpPag End Sub 

尝试这个。 声明一个string和格式,允许你有“02-mar-15”格式。 在您当前的代码中,在您为其分配GIOV的行下方键入“Debug.Print Giov”。 您会在即时窗口看到GIOV =“5/15/2015”或该风格的date。

 Sub FINDDATA() Dim Giov As String Dim ImpPag As Variant Giov = Format(Date + 1, "dd-mmm-yy") ImpPag = Application.VLookup(Giov, Range("A5:B9"), 2, False) MsgBox ImpPag End Sub