Excel公式为excel-vba

我有这个公式,查看多个列的各种标准,并检查,如果所有的标准匹配,它会将数据从一列粘贴到另一列。 我已经尝试了几种方法将其纳入VBA,但我似乎无法得到任何工作。 谢谢!

=IFERROR(INDEX(Sheet1!A$2:A$205,SMALL(IF(ISNUMBER(SEARCH("ECR Approval",Sheet1!$C$2:$C$205)),ROW(Sheet1!$A$2:$A$205)-ROW(Sheet1!$A$2)+1),ROWS(A$2:A2))),"") 

这是一个数组公式,您可以通过使用以下代码将该公式放置在工作表上…

 Dim ws As Worksheet Set ws = Sheets("Sheet2") 'Sheet where formula would be placed ws.Range("A2").FormulaArray = "=IFERROR(INDEX(Sheet1!A$2:A$205,SMALL(IF(ISNUMBER(SEARCH(""ECR Approval"",Sheet1!$C$2:$C$205)),ROW(Sheet1!$A$2:$A$205)-ROW(Sheet1!$A$2)+1),ROWS(A$2:A2))),"""")" ws.Range("A2").AutoFill ws.Range("A2:A205"), xlFillDefault 

要在VBA中使用函数,需要在每个函数Application.WorksheetFunction之前使用。

 x = Application.WorksheetFunction.Sum(y,z) 

要在VBA中引用单元格中的单元格,可以使用Rage

 x = Application.WorksheetFunction.Sum(Range("A1:A2")) 

把它放在一起,看起来像这样:

 =Application.WorksheetFunction.IFERROR(Application.WorksheetFunction.Index(Worksheet(1).Range("A2:A205"),Application.WorksheetFunction.SMALL(Application.WorksheetFunction.IF(Application.WorksheetFunction.ISNUMBER(....