Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用VBA语法编写数组公式(不是Excel公式)_Vba_Excel_Syntax_Match - Fatal编程技术网

如何用VBA语法编写数组公式(不是Excel公式)

如何用VBA语法编写数组公式(不是Excel公式),vba,excel,syntax,match,Vba,Excel,Syntax,Match,要使用两个条件进行查找,在Excel公式中,它将写为: {MATCH(1, 1*(A1:A5=100)*(B1:B5=150), 0)} 如何用VBA语法为WorksheetFunction.Match函数编写上述公式?请考虑: Sub dural() Dim m As Long With Application.WorksheetFunction m = .Match(1, [1*(A1:A5=100)*(B1:B5=150)], 0) End Wi

要使用两个条件进行查找,在Excel公式中,它将写为:

{MATCH(1, 1*(A1:A5=100)*(B1:B5=150), 0)}
如何用VBA语法为WorksheetFunction.Match函数编写上述公式?

请考虑:

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

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

我没有足够的代表发表评论。。 这是为了帮助任何人搜索如何使用Gary学生的答案和变量。我为此挣扎了一个多小时。 使用的括号[]是evaluatestring的快捷方式 您必须替换它们并将它们包装在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

结束Sub

太棒了!非常感谢@Gary的学生如何使用变量替换100和150?当我用变量填充这些值时,我得到了一个错误。似乎没有与&right进行连接。这信息太多,无法作为注释!虽然不确定评估方法的含义。。。