[英]How to use INDEX and MATCH in VBA + Excel with multiple criterias?
[英]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.