如何通过vba在excel中使用sum?

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

使用 WorksheetFunction 在 VBA 中求和

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

使用电子表格在 vba 中求和

考虑 A1:A10 范围内的值之和。

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

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

运行代码进行计算

整列或整行的值的总和

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

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

使用 VBA 添加选择值

现在假设您只想对所选单元格的值求和,因为您可以使用这样的代码。

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

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

上面所有单元格的VBA总和

以下代码提取所有单元格和求和值,并将结果输入到所选单元格中。

 Sub vba_auto_sum() 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.Sum(iRange) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

使用 VBA 添加动态范围

同样,您可以在使用 VBA 添加值时使用动态范围。

 Sub vba_dynamic_range_sum() 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.Sum(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.Sum(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.Sum(Rows(iCol)) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

将 SUMIF 与 VBA 结合使用

就像 sum 一样,您可以使用 SUMIF 函数按条件添加值,如下例所示。

sumif 与 VBA
 Sub vba_sumif() Dim cRange As Range Dim sRange As Range Set cRange = Range ("A2:A13") Set sRange = Range ("B2:B13") Range ("C2") = _ WorksheetFunction.SumIf(cRange, "Product B", sRange) End Sub

添加评论

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