繁体   English   中英

如何查看 VBA 中的最大值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM