繁体   English   中英

Excel Vba索引匹配多个条件以返回完全匹配

[英]Excel Vba Index Match multiple criterias to return Exact match

我有一个vba代码,我将用它查找符合确切2个条件的值。 在大多数情况下,vba返回期望值,但是如果我更改标准,或者如果我输入的标准不在我研究的范围内,则VBA返回错误的值。 如果不符合条件,我希望在H2中显示一个文本“ CriteriasNotMet”

我的代码是:

Sub IndexMatch()
myName = [F2]
mySubject = [G2]
mark = Application.WorksheetFunction.Index([StMark], _
Application.WorksheetFunction.Match(myName, ([StName]), 0) + _
Application.WorksheetFunction.Match(mySubject, ([StSubject]), 0) - 1)

[H2] = mark

End Sub

谁能解释我在哪里做错了?

谢谢你,上帝阿夫顿

彼得·丹麦

Application.WorksheetFunction.FunctionHere

如果出现问题(例如找不到匹配项),则会引发运行时错误,而

Application.FunctionHere

而是返回结果或错误值,您可以使用IsError()测试

这对-1调整没有帮助,因此您无法在一行代码中完成全部操作:您需要先测试每个返回值,然后再将它们传递给Index()

Sub IndexMatch()

    Dim subIndx, nmIndx, mark

    subIndx = Application.Match([G2], [StSubject], 0)
    nmIndx = Application.Match([F2], [StName], 0)

    If Not IsError(subIndx) And Not IsError(nmIndx) Then
        mark = Application.Index([StMark], nmIndx, subIndx - 1)
    Else
        mark = "No Match"
    End If

    [H2] = mark

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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