在使用mmult时,在VBA中input不匹配错误

我正在尝试在vba中编写这个forumla。

=MMULT(TRANSPOSE(F124:F370-L124),G124:G370-L125)/246 

在我写的vba中的代码看起来像这样:

 Sheets("1.A").Cells(124, 14) = Application.WorksheetFunction.MMult(Application.WorksheetFunction.Transpose(Worksheets("1.A").Range("F" & matchStartRow & ":F" & matchEndRow) - Cells(124, 12)), Worksheets("1.A").Range("G" & matchStartRow & ":G" & matchEndRow) - Cells(125, 12)) / (matchEndRow - matchStartRow) 

但它给我一个types不匹配的错误。 不知道它来自哪里

直接使用EVALUATE要容易得多

 Sheets("1.A").Cells(124, 14) = Evaluate("=MMULT(TRANSPOSE(F124:F370-L124),G124:G370-L125)/246") 

或与您的variables

 Dim strEval As String matchStartRow = 124 matchEndRow = 370 strEval = "=MMULT(TRANSPOSE(F" & matchStartRow & ":F" & matchEndRow & "-L124),G" & matchStartRow & ":G" & matchEndRow & "-L125)/(" & matchEndRow & " - " & matchStartRow & ")" Sheets("1.A").Cells(124, 14) = Evaluate(strEval)