Vba Vlookup with date returns 类型不匹配错误

Vba Vlookup with date returns a type mismatch error

我试图在 VBA 中使用 Vlookup 函数查找值,但我在 msgbox 行中收到类型不匹配错误。

明天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

我能帮忙吗?谢谢

试试这个。声明一个字符串和格式,让您拥有“02-mar-15”格式。在您当前的代码中,在您为 GIOV 赋值的行下方键入 "Debug.Print Giov"。您会立即看到 window GIOV = "5/15/2015" 或该样式的日期。

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

在Excel中,日期通常存储为数字,在格式化时仅显示为字符串。您可以通过更改电子表格中日期单元格的数字格式来检查这一点。

在这种情况下,您要查找的日期 (05/03/2015) 实际上存储为 42068。如果您将 Giov 声明为 Long 数据类型,您可以将当前日期 + 1 传递到查找中。我添加了一个消息框,这样您就可以在查找之前将存储的日期视为长整型:

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