如何将= MATCH()公式转换为VBA

时间:2017-12-01 10:23:38

标签: vba excel-vba excel

我如何在VBA中使用以下内容:

=MATCH(1,INDEX(($A$1:$A$6="id2")*($B$1:$B$6="day1"),),0)

这就是我的尝试:

dim nrwo as integer
With Application.WorksheetFunction
    nrow=.MATCH(1,INDEX((range("a1:a6")="id2")*(range("b1:b6")="day1"),),0)
end with

它不起作用,不断告诉我语法错误

2 个答案:

答案 0 :(得分:3)

这将是

cl.Formula = "=MATCH(1,INDEX(($A$1:$A$6=""id2"")*($B$1:$B$6=""day1""),),0)"

其中cl是一个单元格(范围对象)在公式中需要双引号。

编辑:哦,这是数组公式,不是吗?你应该使用cl.FormulaArray

答案 1 :(得分:0)

  1. 选择具有工作Excel公式的单元格。
  2. 运行此代码
  3. Public Sub PrintMeUsefulFormula()
    
        Dim strFormula  As String
        Dim strParenth  As String
    
        strParenth = """"
    
        strFormula = Selection.Formula
        strFormula = Replace(strFormula, """", """""")
    
        strFormula = strParenth & strFormula & strParenth
        Debug.Print strFormula
    
    End Sub
    
    1. 将结果复制到即时窗口中。