excel 如何在VBA中对最大值进行vlookup?

yv5phkfx  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(121)

我想建立一个表格,其中有一个选项,以预先填充与以前提交。
有些人可以每三个月提交一次表格(评估),然后回顾他们的进度,通过预先填写以前提交的表格,他们不必从头开始。
我认为我需要使用vlookup来查看提交日期,并返回与最近(或最大)日期对应的值。
我收到:
运行时错误"1004":对象"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)
iyzzxitl

iyzzxitl1#

通过在调用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

相关问题