Average的使用在VBA中给出了应用程序定义或对象定义的错误
我试图find使用VBA的几个单元格的平均值,但是当我运行它,它给了我错误。
这是我写的代码:
Sheets("1.A").Cells(124, 12) = Application.WorksheetFunction.Average("F" & matchStartRow & ":F" & matchEndRow)
也试过这个:
Sheets("1.A").Cells(124, 12) = Application.WorksheetFunction.Average(Sheets("1.A").Cells("F" & matchStartRow & ":F" & matchEndRow))
我想find单元格Fstart到Fend的平均值,但是当我运行代码时,它会给出应用程序定义或对象定义的错误。
不知道为什么有这样的错误。 需要一些指导。
完整代码:
Dim totalRowsinSheetA As Integer totalRowsinSheetA = Sheets("1.A").Cells(Rows.Count, 1).End(xlUp).row Sheets("1.A").Rows.Hidden = False Sheets("1.A").Rows("3:" & matchStartRow - 1).Hidden = True Sheets("1.A").Rows(matchEndRow + 1 & ":" & totalRowsinSheetA).Hidden = True Sheets("1.A").Rows.Hidden = False 'Calculation of mean,VAR and cov Sheets("1.A").Cells(124, 12) = Application.WorksheetFunction.Average("F" & matchStartRow & ":F" & matchEndRow)
你在混合你的隐喻,或者其他的东西:)。 您可以在Average WorksheetFunction
包含VBA Range
语法:
Sub test() Dim matchStartRow As Long Dim matchEndRow As Long matchStartRow = 2 matchEndRow = 5 Sheets("1.A").Cells(124, 12) = Application.WorksheetFunction.Average(Sheets("1.A").Range("F" & matchStartRow & ":F" & matchEndRow)) End Sub
或者您可以使用Application.Evaluate
并构build一个公式,如同在Excel中显示的那样:
Sub test2() Dim matchStartRow As Long Dim matchEndRow As Long matchStartRow = 2 matchEndRow = 5 Sheets("1.A").Cells(124, 12) = Application.Evaluate("=Average(F" & matchStartRow & ":F" & matchEndRow & ")") End Sub