使用=SUM(START:END)、复制/粘贴和/或宏

使用=SUM(START:END)、复制/粘贴和/或宏

我需要一个工作表函数或公式或 VBA 用户定义函数来获取数字列表的总和,结果将位于列表顶部,而不是像 Excel 中的自动求和功能那样位于列表底部。此外,两个单独的列中会有许多数字列表,因此我不想为每个数字列表编写公式。此外,在图像中,黄色单元格在现实生活中将是空白的。

在图片中我试着举了一个例子。希望它能对你有所帮助。

答案1

使用=SUM(START:END)、复制/粘贴和/或宏

为了节省在第一个“结果单元格”中为每个列表键入公式的时间,您可以使用=SUM(B4:B10)。例如:

在此处输入图片描述

然后将此公式复制并粘贴到其他“结果单元格”中,公式将更新引用。当然,这假设您要求和的列表长度相同。

如果你反复运行此操作(例如报告)录制宏将有助于实现该过程的自动化。

录制宏时,宏录制器会记录 Visual Basic for Applications (VBA) 代码中的所有步骤。这些步骤包括键入文本或数字、单击功能区或菜单上的单元格或命令、设置单元格、行或列的格式,甚至从外部源(例如 Microsoft Access)导入数据。

如果您想编写自己的宏,那么值得看一下.SelectActiveCell.Formula[A/R1C1],如下所示:

Worksheets("yourworksheet").Range("ResultCell").Formula = "=SUM(Range1:Range2)"

ResultCell根据需要更换和插入。

进一步阅读

那里有很多资源;你可能需要考虑公式资源(摘自 wikibooks)。摘自该页面:

电子表格中使用的公式会自动按照用户认为合适的方式处理数据。公式从电子表格中的某些区域获取数据,对其进行处理,然后根据公式的编写位置将输出放入电子表格的新区域中。公式可以简单到“=SUM(A10,A11)”(获取 A 行第 10 和第 11 个单元格中的信息并输出总和),也可以复杂到用户希望的程度。用于创建公式的函数(例如 SUM)由电子表格软件预先指定。

值得做一些背景阅读,因为它可以使解决未来的问题变得简单得多。

微软有一个关于添加值的不同方式的页面也是;但SUM在这种情况下你应该没问题。

答案2

创建此宏

Sub MacroSumDownward()

' Keyboard Shortcut: Ctrl+d
'

    Selection.FormulaR1C1 = "=SUM(R[1]C:R[99999]C)"

End Sub  

您可以录制任何宏并为其分配快捷方式,然后复制上述内容:
Selection.FormulaR1C1 = "=SUM(R[1]C:R[99999]C)"
R[99999] 选择列中的任意单元格并将其包含在总和中,您可以根据数据中的最大行数进行更改,
并删除任何其他指令,只需保留

Sub Macro()
Selection.FormulaR1C1 = "=SUM(R[1]C:R[99999]C)"
End sub  

当你想要运行它时,只需选择每列上方的单元格(同时选择),然后使用你分配给宏的快捷方式(我使用Ctrl+d它将执行总和,
最好使用不同的列,除非你有固定的行数(或者只是保留比你在宏中写的最大行数更多的空间)

相关内容