【发布时间】:2018-01-13 17:30:40
【问题描述】:
我正在尝试编写一个函数,该函数将根据匹配日期在表中查找值。如果不匹配,它将在返回错误之前最多查找 7 天。
Option Explicit
Public Function GetWeekEndBalanceFromStatement(lookupDate As Date, statement As Range, column As Integer) As Variant
Dim lookupModifier As Integer
Do While IsError(Application.VLookup(DateAdd("d", lookupModifier, lookupDate), statement, column, False)) And lookupModifier > -7
lookupModifier = lookupModifier - 1
Loop
GetWeekEndBalanceFromStatement = Application.VLookup(DateAdd("d", lookupModifier, lookupDate), statement, column, False)
End Function
我在调试时遇到的问题是 VLookups 始终返回
错误 2042
即使在电子表格中写入的相同 VLookup 返回值的情况下。
写出来的函数调用参考,第一行是K8:
=DATE(2018,1,5)
=VLOOKUP(K8, A:F, 6,FALSE )
=GetWeekEndBalanceFromStatement(K8,A:F,6)
关于我可能做错了什么的任何线索?我尝试将日期封装在 CDate 中,将 .Value 附加到范围并将日期作为变体引入并访问 .Value2。
【问题讨论】: