VBA Microsoft Excel 中的 SUM 函数

2025 年 2 月 28 日 | 阅读 19 分钟

众所周知,Microsoft Excel VBA(Visual Basic for Applications)中的“Sum 函数”主要被认为是一个强大的工具,广泛用于计算一组数值的总和。它允许用户在其 VBA 代码中有效地直接添加所有单独的数字、单元格引用或单元格范围。此函数是 WorksheetFunction 对象的一部分,该对象主要提供对许多 Excel 工作表函数的访问。

VBA SUM Function in Microsoft Excel

尽管如此,Sum 函数的语法非常直接,因此易于用于简单和复杂的计算。无论是对几个单独的值还是整个单元格范围进行求和,Sum 函数都通过自动化本应在 Microsoft Excel 中手动输入的计算来提高生产力。凭借其忽略所有非数字值和处理多个参数的能力,Sum 函数对于任何希望在其 Microsoft Excel VBA 项目中高效执行数据分析或财务计算的人来说都非常重要。

什么是 Microsoft Excel 中的 VBA SUM 函数?

众所周知,VBA SUM 函数是 VBA 编程环境中熟悉的 Microsoft Excel SUM 函数的实现。它还允许用户以编程方式将定义的范围或数组中的一系列数字相加。通过利用 VBA,我们可以轻松自动化各种重复性任务,使计算更快、更有效。

VBA SUM Function in Microsoft Excel

例如,我们通常有一个工作表,我们可以在其中轻松跟踪一周的销售数据。销售数字有效地输入在单元格 A1 到 A6 中,如下所示:

VBA SUM Function in Microsoft Excel

在此示例中,我们希望通过使用 VBA 来计算本周的总销售额。而不是在 Microsoft Excel 中手动输入公式,我们可以创建一个 VBA 子例程来有效地完成此操作。

实现上述示例的步骤

步骤 1. 打开 Microsoft Excel 工作簿:我们必须确保此处打开了 Microsoft Excel 工作簿,并且我们确实要执行计算任务。

步骤 2. 访问 VBA 编辑器:在此步骤中,我们需要按键盘上的快捷键 ALT + F11 来打开 Visual Basic for Applications (VBA) 编辑器。

3. 插入新模块:在相应的 VBA 编辑器中,我们必须右键单击“项目资源管理器”中的任何项目。然后,我们必须转到“插入”部分,然后选择“模块”。这将有效地创建一个新模块,我们可以在其中编写代码。

4. 编写 VBA 代码:在新模块中,我们可以轻松编写以下代码:

5. 理解代码

  • 子例程定义:Sub CalculateTotalSales() 行主要定义了一个名为 CalculateTotalSales 的新子例程。
  • 变量声明:Dim totalSales As Double 主要声明了一个名为 totalSales 的变量,它将保存销售额的总和。使用 Double 可以存储大数和十进制值。
  • 求和:totalSales = Application.WorksheetFunction.Sum(Range("A1:A6")) 使用 WorksheetFunction 对象中的 Sum 函数计算指定范围 (A1 到 A6) 内的值的总和。
  • 输出结果:Print 将总和输出到“立即窗口”,我们可以通过在 VBA 编辑器中按 CTRL + G 来查看它。

6. 运行子例程:要运行子例程,我们需要在 VBA 编辑器中,当光标位于 CalculateTotalSales 子例程内时,按键盘上的 F5。或者,我们也可以返回 Microsoft Excel。为此,我们必须转到“开发工具”选项卡,单击“”,选择“CalculateTotalSales”,然后单击“运行”。

查看结果:运行相应的子例程后,我们现在可以轻松地在“立即窗口”中查看输出。如果 A1 到 A6 单元格中的销售数字如所述,则输出将显示为:

A1 到 A6 的总销售额为:1450

VBA SUM Function in Microsoft Excel

尽管如此,在此特定示例中,我们有效地学习了如何轻松地使用相应的 VBA SUM 函数来自动计算 Excel 工作表中指定范围的总销售额。此方法在处理大量数据或执行频繁计算时特别有用,因为它有效地最大限度地减少了手动输入并降低了出错的风险。通过使用 VBA,我们可以通过添加条件、处理错误或将其与其他数据处理任务集成来进一步增强此功能,从而使其成为 Excel 用户高效且强大的工具。

如何轻松地在 Microsoft Excel VBA 中使用 SUM 函数?

我们都知道,在相应的 Microsoft Excel VBA 中,我们通常不像在 Excel 公式中那样直接使用 "SUM 函数"。而是可以通过各种方法实现此特定求和,例如数组或循环。以下是实现方法:

对单个值求和:我们可以有效地声明变量,也可以直接将它们相加。

2. 对给定范围的值求和:但是,为了对所选工作表中给定范围的所有值求和,我们可以轻松地使用 Application.WorksheetFunction.Sum 方法。这是一个示例:

3. 使用循环求和:如果我们需要对动态范围求和,或者需要执行更复杂的计算,那么在这种情况下,我们可以轻松地使用循环。

4. 使用数组:如果数组中有一组值,那么在这种情况下,我们可以通过使用循环有效地对它们进行求和。

实际考虑

  1. 数据类型:这将确保我们通常用于保存总和的变量具有适当的数据类型(例如,Double 用于十进制值)。
  2. 错误处理:考虑实施错误处理,以有效地管理范围内意外的数据类型,例如文本或空单元格,这可能会导致错误。

在 Microsoft Excel VBA 中,对值进行求和通常可以通过不同的方法完成,具体取决于上下文和数据结构。无论是对硬编码的数字、工作表范围中的值还是数组元素进行求和,VBA 都主要提供灵活的方法来高效地执行所有这些计算。

优点

使用相应的 Microsoft Excel VBA SUM 函数的各种优势如下:

VBA SUM Function in Microsoft Excel
  1. 自动化重复性任务:使用相应的 VBA Sum 函数的主要好处之一就是它能够有效地轻松自动化计算。但是,在处理大量数据时,手动求和所有值可能非常耗时且容易出错。因此,只需编写简单的 VBA 脚本,我们就可以轻松地自动化此过程,从而允许 Microsoft Excel 通过单个命令执行计算。这将节省时间,并确保结果的一致性。
  2. 增强的自定义:Microsoft Excel 中的相应 VBA Sum 函数比 Microsoft Excel 的内置函数提供了更大的自定义性。我们还可以根据特定标准定制我们的求和,例如仅对满足某些条件的值求和(例如,仅正数或特定类别的​​值)。这种控制级别意味着我们可以创建完全适合我们特定需求的计算,而标准 Microsoft Excel 函数可能无法实现。
  3. 高效处理大量数据集:众所周知,Microsoft Excel 在处理大量数据时可能会遇到各种性能问题。但是,通过使用相应的 VBA 可以显著提高效率。尽管如此,相应的 VBA 代码可以比其他标准公式更快地处理数据,尤其是在执行复杂计算时。对于经常处理大量数据的用户来说,这种效率尤其有益,因为它可以减少花在等待计算完成上的时间。
  4. 与其他任务集成:使用相应的 VBA Sum 函数的另一个重要优势是它能够与其他 VBA 任务和操作无缝集成。例如,如果我们一次生成报告或执行多个计算,我们可以轻松地将求和集成到我们更广泛的工作流程中。这种集成可以帮助我们简化流程,确保我们分析的所有部分都能平稳高效地协同工作。
  5. 减少错误和调试:通过有效地利用 Microsoft Excel VBA,还可以减少错误,尤其是在处理复杂计算时。使用相应的 VBA,我们还可以编写代码,在执行求和之前检查特定条件,从而允许我们尽快捕获所有潜在问题。此外,VBA 编辑器中提供的调试工具可以帮助我们轻松快速地识别和解决错误。这将产生更可靠的结果,让用户对其有效的数据分析充满信心。

此外,Microsoft Excel 中的相应 VBA Sum 函数提供了广泛的优势,包括自动化、自定义、处理大量数据的效率、与其他任务的集成以及改进的错误减少。这些功能使其成为任何希望增强其在 Microsoft Excel 中的数据管理和分析能力的人的强大工具。

# 示例 1:使用 VBA 对 Excel 表中的值进行求和

在本教程中,我们将通过一个实际示例,介绍如何轻松有效地使用 VBA Sum 函数来计算 Excel 表中的总购买金额。此方法通常利用 Microsoft Excel 的 ListObject 功能,使过程动态且易于适应表格的变化。

现在,假设我们在 Microsoft Excel 中有一个表格,其中列出了我们购买的各种商品及其价格。为此,我们实际上希望使用 VBA 有效地计算所有这些商品的总付款金额。

VBA SUM Function in Microsoft Excel

有效实现上述示例的分步过程

步骤 1:创建子例程:首先,我们需要开始我们的过程,这可以通过定义一个子例程来完成。这个子例程将包含有效地计算价格总和的代码。


VBA SUM Function in Microsoft Excel

步骤 2:定义 ListObject 变量:现在在此步骤中,我们将定义一个变量,用于保存表格 (ListObject)。我们将所有这些变量设置为引用我们相应 Excel 工作表中的特定表格。

并且在这段代码中,我们特别指定我们的表格位于 Sheet1 上,名为 "Table1"。尽管如此,我们还将确保我们以有效的方式用我们工作簿中的实际名称替换所有这些名称。

步骤 3:获取列范围:现在,我们将从我们实际上想要对其求和的特定列中获取值的范围。我们还可以使用 ListColumns 属性按名称引用列并需要有效地提取所有数据。


VBA SUM Function in Microsoft Excel

在这段代码中,我们实际上关注的是名为 "Price" 的列。这就是所有商品价格有效地列出的地方。

步骤 4:计算总和:在此特定步骤中,我们将定义一个变量来存储价格的总和。我们还可以使用 WorksheetFunction.Sum 方法来计算我们在上一步中定义的范围的总和。


VBA SUM Function in Microsoft Excel

在这段代码中,相应的 SumRan 将在对所选数据范围有效地执行求和操作后保存总金额。

步骤 5:显示结果:最后,我们想在消息框中显示总和。这将最终提供一种用户友好的方式来查看结果。


VBA SUM Function in Microsoft Excel

这个消息框通常会显示应付的总金额,并附带一个信息图标以示清晰。

完整代码

这是子例程的完整 VBA 代码:

运行代码

要有效地运行此代码,我们需要遵循以下步骤:

  1. 首先,我们需要打开 Microsoft Excel。然后,我们需要确保我们在“Sheet1”上有一个名为“Table1”的表格,其中有一列名为 "Price"
  2. 通过按键盘上的 ALT + F11 打开 VBA 编辑器。
  3. 通过右键单击我们工作簿中的任何对象并选择插入 > 模块来插入新模块。
  4. 要继续,我们必须复制并粘贴完整的代码到模块窗口中。
  5. 按 F5 或单击工具栏中的运行按钮来执行代码。

输出:运行子例程后,将弹出一个消息框,显示需要支付的总金额,该金额是从 Microsoft Excel 表中列出的价格计算得出的。此方法有效地动态求和值,适应表格中的任何更改,而无需相应地调整代码。

VBA SUM Function in Microsoft Excel

# 示例 2:使用 VBA(Visual Basic for Applications)对 Microsoft Excel 中两个不连续的范围求和

在此示例中,我们将看到如何轻松地将两个不连续的范围加在一起。让我们现在假设我们有两个单独的账单,一个是电费,一个是水电费。我们将计算要支付的总金额。使用 VBA Sum 公式,两者位于不同的范围不是问题。

VBA SUM Function in Microsoft Excel

Microsoft Excel VBA 中对两个范围求和的分步指南

步骤 1:设置单元格货币格式:在开始编码之前,确保我们相应的 Microsoft Excel 工作表中的数据格式正确,以便显示货币非常重要。此步骤有助于呈现结果。

  1. 有效选择单元格:在本节中,我们将通常突出显示包含电费和水电费金额的单元格。例如,在此示例中,我们的电费账单存储在单元格 C2 到 C11 中,我们的水电费账单存储在单元格 E2 到 E11 中,因此我们需要选择所有这些范围。
  2. 设置为货币格式:之后,我们必须右键单击选定的单元格,然后从上下文菜单中选择“设置单元格格式”。
    VBA SUM Function in Microsoft Excel
  3. 选择货币格式:在相应的设置单元格格式对话框中,我们必须选择“货币”类别。之后,我们需要选择适当的货币符号(例如美元符号表示 USD),然后单击“确定”。这将确保任何数字数据都以货币格式显示,从而提高可读性。
    VBA SUM Function in Microsoft Excel

步骤 2:打开 VBA 编辑器:现在我们的数据已正确格式化,是时候编写将最终有效地执行求和的代码了。

  1. 访问 VBA 编辑器:现在在 Microsoft Excel 中,我们需要按下键盘上的快捷键,也就是 ALT + F11,以便打开 Visual Basic for Applications 编辑器。这里是我们实际编写和管理宏的地方。
    VBA SUM Function in Microsoft Excel
  2. 插入新模块:只需右键单击“VBAProject (YourWorkbookName)”下列表中的任何项目,将鼠标悬停在“插入”上,然后选择相应的“模块”。此操作将有效地创建一个新模块,我们可以在其中高效地编写代码。
    VBA SUM Function in Microsoft Excel

步骤 3:编写 VBA 代码:在这里新创建的模块中,我们必须编写子例程,该子例程将有效地以有效的方式计算两个范围的总和。

1. 定义子例程:我们将从命名我们的子例程开始。这只是一个标签,它会告诉 Microsoft Excel 我们的宏将做什么。


VBA SUM Function in Microsoft Excel

2. 声明范围变量:现在在此相应步骤中,我们将声明变量来保存我们实际上想要对其求和的两个单元格范围。


VBA SUM Function in Microsoft Excel

3. 初始化范围:我们必须设置 rng1 变量为我们相应电费账单的范围 (C2:C11),将 rng2 设置为我们水电费账单的范围 (E2:E11)


VBA SUM Function in Microsoft Excel

4. 对范围求和:现在在此步骤中,我们必须使用相应的 WorksheetFunction。sum 方法将两个范围合并,并将结果输出到指定的单元格,该单元格是 D13


VBA SUM Function in Microsoft Excel

5. 结束子例程:现在,我们需要使用 End Sub 语句关闭子例程。


VBA SUM Function in Microsoft Excel

步骤 4:运行我们的 VBA 代码:现在在此步骤中,编写完 VBA 代码后,就该执行它并查看结果了。

  1. 运行宏:我们可以通过单击相应的子例程代码内的任何位置,然后按快捷键 F5,或者通过返回 Microsoft Excel 并从开发工具选项卡选择“”,选择 SumOfMultipleRanges,然后单击“运行”选项来运行选定的宏。
    VBA SUM Function in Microsoft Excel
  2. 检查结果:运行宏后,我们必须检查我们相应 Excel 工作表中的单元格 D13。它现在应该显示两个范围(电费和水电费账单)的总和。
VBA SUM Function in Microsoft Excel

然而,通过遵循以上所有步骤,我们可以轻松地使用 VBA 对 Microsoft Excel 中的不连续范围进行求和。这种技术在处理各种费用类别时特别有用,因为它允许我们维护一个有组织的电子表格,同时自动化计算。请记住保存我们在 VBA 编辑器和 Excel 中的工作,并随时修改范围引用以有效地适应您当前的布局。

示例 3:使用 VBA 对整个列以及整个行进行求和

在此相应示例中,我们将提供一个清晰的解释,说明如何有效地使用 Microsoft Excel 中的 VBA Sum 公式来计算整个列或整个行的总和。为此,我们将按结构化的方式完成这些步骤,通过两个示例清晰地解释过程:对列值求和和对行值求和。

2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
74
76

示例 3.1:对整个列进行求和

步骤 1:定义一个对整个列进行求和的子例程:要完成此操作,我们需要创建一个新的 VBA 子例程。


VBA SUM Function in Microsoft Excel
VBA SUM Function in Microsoft Excel

步骤 2:设置我们想要显示总和值的目标单元格:在此特定步骤中,我们将有效地使用“Sheet1”上的单元格 "N8"。要对整个列 "I" 进行求和,我们还可以使用 VBA Sum 公式中的 "I: I" 范围。


VBA SUM Function in Microsoft Excel

步骤 3:在消息框中打印总和值:在此步骤中,在计算出总和后,我们将积极专注于将其显示在消息框中,以提高清晰度。


VBA SUM Function in Microsoft Excel

步骤 4:运行子例程以执行计算:当我们最终运行 ColSum 子例程时,它将把 I 列中所有值的总和打印到单元格 N8 中,并显示一个带有总和的消息框,如下所示。

VBA SUM Function in Microsoft Excel

示例 3.2:对整个行进行求和

同样,让我们现在假设我们有一行无法量化的值。对此,我们可以有效地使用 VBA Sum 函数,通过使用 Worksheet 函数 'SUM' 来查找整个行的总和。

VBA SUM Function in Microsoft Excel

步骤 1:首先定义一个子例程,该子例程将有效地对整个行进行求和。


VBA SUM Function in Microsoft Excel

步骤 2:定义一个变量来存储总和:在此步骤中,我们将有效地使用 Double 变量来容纳可能的大总和而不会导致溢出错误。


VBA SUM Function in Microsoft Excel

步骤 3:使用 WorksheetFunction 对整个行进行求和。在此示例中,我们将对第 16 行的所有值进行求和。


VBA SUM Function in Microsoft Excel

步骤 4:执行子例程以查看结果:运行 FullRowSum 子例程将计算第 16 行所有值的总和,然后在消息框中显示结果。

VBA SUM Function in Microsoft Excel

通常,使用相应的 VBA 对整个列或行进行求和非常直接。通过遵循概述的步骤并有效地使用提供的代码片段,我们可以轻松地在 Microsoft Excel 工作簿中执行所有这些计算。

需要记住的事情

在使用 Microsoft Excel VBA 中的 "Sum function" 时,个人需要记住的各种重要要点如下:

  1. 验证范围:我们必须确保指定的 "Sum function" 范围非常准确,并用于避免相应计算中的错误。
  2. 使用命名范围:个人必须记住,他们需要在相应的 VBA 中实施命名范围,以提高代码的可读性和易维护性。
  3. 检查错误:在 Microsoft Excel 中应用 "Sum function" 之前,必须检查数据中是否存在潜在错误或边缘情况,例如非数字条目。
  4. 考虑性能:在汇总大量范围或跨多个工作表时,应注意性能问题;如果可能,请限制范围。
  5. 验证输入数据:我们始终需要验证输入数据以确保准确性,并避免因错误输入而导致的错误结果。
  6. 避免合并单元格:并且为了防止意外结果,请避免对可能包含合并单元格或隐藏行/列的范围使用相应的 "Sum function"

常见问题解答/FAQ

关于使用 Microsoft Excel VBA 中的 SUM Function 的各种常见问题如下:

问题 1. 详细说明 Microsoft Excel VBA 中的 SUM 函数,以及如何使用它?

答案:在 Microsoft Excel 中,"SUM function" 被称为一个内置方法,主要用于将数字相加。相应的 VBA 主要允许个人以编程方式执行计算,这对于自动化任务特别有用。例如,如果我们想对特定范围内的单元格值求和,那么在这种情况下,我们将使用 Application.WorksheetFunction.Sum 方法。

在这段代码中,我们必须声明一个名为 "total" 的变量,并将单元格 A1A10 的值的总和赋给它。当我们确实需要在不手动输入数据到 Microsoft Excel 的情况下执行计算时,这非常有用。

问题 2:我们能否有效地使用 SUM 函数处理不连续的范围?

答案:是的!相应的 SUM function 可以有效地处理不连续的范围,这意味着我们可以轻松地对不相邻的多个范围进行求和。为了实现这一点,我们可以使用逗号分隔范围。

  • 例如,如果我们想同时添加 A1 到 A10 和 C1 到 C10 的值,那么在这种情况下,我们会这样写:

此代码段将对这两个指定范围的值进行总计。而且,这个功能在我们需要合并工作表中不同部分的数据而无需将其合并到单个范围时特别有用。

问题 3. 在使用 VBA 中的 SUM 函数时,如何轻松处理错误?

答案:我们都知道,有效地处理错误被认为是编写可靠 VBA 代码的一个重要方面。在对范围进行求和时,我们可能会遇到问题,例如空单元格或数字范围中的文本。为了优雅地处理所有这些情况,我们可以实施错误处理。这是我们可能如何做:

在此相应示例中,On Error Resume Next 语句允许代码在发生错误时继续运行。尝试求和后,我们还可以检查是否遇到了错误,如果是,则由于意外问题而显示一条消息。