[英]How can I vlookup the max value in VBA?
我对 VBA 非常陌生,并且必须使用它来构建一个表单,该表单可以选择预先填充您之前提交的内容,其想法是有人可以每三个月提交一次表单(评估)并随着时间的推移审查他们的进度,并且通过预先填充以前的提交,他们不必每次都从头开始。
为此,我相信我需要使用 vlookup 来查看提交日期并返回与最近(或最大)日期相对应的值。
到目前为止我已经写了这个,但我收到错误:运行时错误'1004':object'WorksheetFunction'的方法'VLookup'失败。
Sub vlookup1()
Set myrange = Range("data_table")
Name = Application.WorksheetFunction.Max(Range("date_range"))
answer.Value = Application.WorksheetFunction.vlookup(Name, myrange, 4, False)
我真的很感激一些帮助确定我做错了什么,或者如果不可能做到这一点,或者可能有更好的方法来做到这一点。 先感谢您!
通过在调用 Vlookup 时删除WorksheetFunction
,您可以避免在未找到匹配项时触发运行时错误。
这对我来说很好:
Sub Tester()
Dim maxDt, myrange As Range, result
Set myrange = Range("data_table")
maxDt = Application.WorksheetFunction.Max(Range("date_range"))
Debug.Print "Max date:", Format(maxDt, "yyyy-mm-dd")
result = Application.VLookup(maxDt, myrange, 4, False) 'no `WorksheetFunction`
If Not IsError(result) Then
Debug.Print result
Else
Debug.Print "No match!"
End If
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.