如何在VBA语法中编写数组公式(不是Excel-Formula)

问题描述 投票:1回答:2

要使用两个条件进行查找,请在Excel-Formula中将其写为:

{MATCH(1, 1*(A1:A5=100)*(B1:B5=150), 0)}

如何在WorksheetFunction.Match函数的VBA语法中编写上述公式?

excel vba excel-vba syntax match
2个回答
3
投票

考虑:

Sub dural()
    Dim m As Long

    With Application.WorksheetFunction
        m = .Match(1, [1*(A1:A5=100)*(B1:B5=150)], 0)
    End With

    MsgBox m
End Sub

enter image description here

这显示工作表中的数组公式和VBA等效项。


-1
投票

我没有足够的代表发表评论..这是为了帮助任何人搜索如何使用变量的“加里的学生”的答案。我摔了一个多小时。使用的方括号[]是evaluate(字符串)的快捷方式。您必须替换它们并将它们包装在evaluate方法中。由于参数是一个字符串,您可以使用所需的变量自己构造字符串。

Sub dural()
Dim m As Long

With Application.WorksheetFunction
    m = .Match(1, evaluate("1*(A1:A5=100)*(B1:B5=150)"), 0)
End With

MsgBox m

结束子

© www.soinside.com 2019 - 2024. All rights reserved.