如下图所示:
在vba中调用excel工作表函数Lookup,会显示如上图所示的错误提示。
在excel工作表函数中可以直接使用Lookup函数是没问题的,但是在vba中调用时却不行,由于在vba中,没有办法自动把日期型数据直接转换为数值型数据,所以导致出错。
这时候可以使用Clng函数先将日期型数据转换为日期序号,再在vba中调用excel工作表函数Lookup,最后将返回的结果用CDate函数转换为日期型数据。
代码如下:
Sub QQ1722187970() Dim arr() For i = 0 To 20 ReDim Preserve arr(i) arr(i) = VBA.CLng(VBA.DateAdd("yyyy", i, Date)) Next i dDate = VBA.CLng(#12/1/2022#) MsgBox VBA.CDate(Excel.Application.WorksheetFunction.Lookup(dDate, arr)) End Sub
发表评论