如何通过vba在excel中求平均值?

在Excel中,您可以使用VBA计算一系列单元格或多个区域的平均值。并且,在本教程中,我们将学习使用它的不同方法。

使用 WorksheetFunction 在 VBA 中求平均值

在 VBA 中,您可以使用多个函数,但没有用于此目的的特定函数。这并不意味着我们不能取平均值。在VBA中,有一个名为WorksheetFunction的属性可以帮助您在VBA代码中调用函数。

使用电子表格函数在vba中求平均值

让我们对 A1:A10 范围内的值进行平均。

  1. 首先输入工作表函数属性,然后从列表中选择 AVERAGE 函数。
    worksheet-function-average
  2. 接下来,您必须像在电子表格中输入函数时一样输入起始括号。
    enter-starting-paranthesis
  3. 之后,我们需要使用范围对象来引用我们要计算平均值的范围。
    use-the-range-object
  4. 最后,键入右括号并将函数的返回值分配给单元格 B1。
    type-close-pranthesis
 Application.WorksheetFunction.Average( Range ("A1:A10"))

现在,当您运行此代码时,它会计算 A1:A10 范围内的值的平均值,并将该值输入到单元格 B1 中。

运行代码计算平均值

整列或整行的平均值

在这种情况下,您只需要指定行或列,而不是我们在上一个示例中使用的范围。

 'for the entire column A Range ("B1") = Application.WorksheetFunction.Average( Range ("A:A")) 'for entire row 1 Range ("B1") = Application.WorksheetFunction.Average( Range ("1:1"))

使用 VBA 对选择值进行平均

现在假设您只想计算所选单元格的平均值,因为您可以使用这样的代码。

 Sub vba_average_selection() Dim sRange As Range Dim iAverage As Long On Error GoTo errorHandler Set sRange = Selection iAverage = WorksheetFunction.Average(Range(sRange.Address)) MsgBox iAverage Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

在上面的代码中,我们使用了选择,然后将其指定在变量“sRange”中,然后我们使用该范围变量的地址来获取平均值。

VBA平均以上所有单元格

以下代码获取上面所有单元格及其平均值,并将结果输入到所选单元格中

 Sub vba_auto_Average() Dim iFirst As String Dim iLast As String Dim iRange As Range On Error GoTo errorHandler iFirst = Selection. End (xlUp). End (xlUp).Address iLast = Selection. End (xlUp).Address Set iRange = Range(iFirst & ":" & iLast) ActiveCell = WorksheetFunction.Average(iRange) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

使用 VBA 平均动态范围

同样,您可以使用动态范围,同时使用 VBA 对值进行平均。

 Sub vba_dynamic_range_average() Dim iFirst As String Dim iLast As String Dim iRange As Range On Error GoTo errorHandler iFirst = Selection.Offset(1, 1).Address iLast = Selection.Offset(5, 5).Address Set iRange = Range(iFirst & ":" & iLast) ActiveCell = WorksheetFunction.Average(iRange) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

平均动态列或行

同样,如果您想使用动态列,您可以使用以下代码,该代码将获取活动单元格的列以及其中所有值的平均值。

 Sub vba_dynamic_column() Dim iCol As Long On Error GoTo errorHandler iCol = ActiveCell.Column MsgBox WorksheetFunction.Average(Columns(iCol)) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

并连续。

 Sub vba_dynamic_row() Dim iRow As Long On Error GoTo errorHandler iRow = ActiveCell.Row MsgBox WorksheetFunction.Average(Rows(iCol)) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

添加评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注