You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel VBA动态计算每行至最后非空行的付款总额?

实现Excel宏动态计算每行付款总额到最后非空行

方法1:逐行循环计算

适合数据量不大的场景,逻辑直观:

Sub CalculatePaymentTotal()
    Dim lastRow As Long
    Dim ws As Worksheet
    
    ' 指定目标工作表,替换为你的表名(比如"付款表")
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    
    ' 以B列为基准,获取最后一个非空行的行号
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    
    ' 从第2行开始遍历到最后一行
    Dim i As Long
    For i = 2 To lastRow
        ' 计算当前行B、C、D列的和,存入E列
        ws.Cells(i, "E").Value = WorksheetFunction.Sum(ws.Range(ws.Cells(i, "B"), ws.Cells(i, "D")))
    Next i
End Sub

方法2:公式填充(高效推荐)

大数据量下更快速,利用Excel内置公式批量填充:

Sub CalculatePaymentTotal_Fast()
    Dim lastRow As Long
    Dim ws As Worksheet
    
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    
    ' 在E2写入求和公式,自动填充到最后一行
    ws.Range("E2:E" & lastRow).Formula = "=SUM(B2:D2)"
    
    ' 可选:将公式转为固定值(如需保留公式则删除下面一行)
    ' ws.Range("E2:E" & lastRow).Value = ws.Range("E2:E" & lastRow).Value
End Sub

关键说明

  • 若判断最后一行的基准列不是B列,将代码中的"B"替换为目标列(比如"D")
  • 两种方法都支持自动识别最后一个非空行,无需手动指定行数
  • WorksheetFunction.Sum会自动忽略空单元格,计算更可靠

内容的提问来源于stack exchange,提问作者Benjamin Allen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:45:01