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

VBA如何选择动态移动的范围并仅计算最近录入的4行数据

VBA实现仅对最新录入的4行数据求和的方案

实现逻辑

  • 先判断当前已有数据行数是否≥4,避免行数不足时报错
  • 定位数据列的最后一个非空行位置,作为最新录入行的末尾
  • 取该位置往上数共4行的区间,执行求和运算
  • 将求和结果写入你指定的单元格(可选择求和列的最后一行下方,或者固定结果单元格)

可直接复用的VBA代码

以下代码默认求和列为B列(对应序号2),结果输出在最后一行的下一列同位置,可按需修改参数:

Sub 最新4行求和()
    Dim lastRow As Long
    Dim sumRng As Range
    Dim targetCol As Integer
    
    ' 要执行求和的列,A=1、B=2,按需修改为实际列序号
    targetCol = 2
    
    ' 定位目标列的最后一个非空行
    lastRow = Cells(Rows.Count, targetCol).End(xlUp).Row
    
    ' 校验数据行数
    If lastRow < 4 Then
        MsgBox "当前录入数据不足4行,请完成录入后再操作", vbExclamation
        Exit Sub
    End If
    
    ' 定义最后4行的求和区间
    Set sumRng = Range(Cells(lastRow - 3, targetCol), Cells(lastRow, targetCol))
    
    ' 求和结果写入,此处示例写在最后一行的下一行同列
    Cells(lastRow + 1, targetCol).Value = Application.WorksheetFunction.Sum(sumRng)
    ' 若要写入固定单元格比如D2,替换为 Range("D2").Value = 以上求和逻辑即可
    
    ' 可选:给结果加标注,方便识别
    Cells(lastRow + 1, targetCol - 1).Value = "最新4行合计:"
End Sub

按钮绑定方法

  • 进入Excel「开发工具」选项卡,点击「插入」-「表单控件(按钮)」,在表格合适位置绘制按钮
  • 弹出的指定宏窗口里选择上面写的最新4行求和宏,点击确定即可
  • 后续用户录入完4行数据后点击按钮,就会自动识别最新的4行做求和,不会影响之前的计算结果

如果需要对每行的多个列分别执行最新4行求和,只需要在代码中循环遍历需要求和的列序号,重复执行求和逻辑即可。如果数据中间存在空行,可将定位最后一行的逻辑替换为UsedRange的最后行,适配非连续数据场景。

内容的提问来源于stack exchange,提问作者Shane Cahalane

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:15:04