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

如何用VBA在含2024的行下方插入行并在对应列填入2025?

修改VBA代码实现插入预测行并填充2025年

需求说明

从ERP导出的销售历史数据中,需在所有包含2024年的行下方插入空行,并在新行的D列(年份列)填入2025,用于明年的销售预测。

示例数据

Employee.Employee Company Product Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Total

Employee.1 Customer A Product A 2023 1 1
Employee.1 Customer A Product A 2024 2 2
Employee.1 Customer A Product B 2024 4 4
Employee.1 Customer A Product C 2024 5 5
Employee.1 Customer A Product D 2024 3 3
Employee.1 Customer A Product E 2024 3 3
Employee.1 Customer A Product F 2023 39 22 61
Employee.1 Customer A Product F 2024 19 19

修改后的VBA代码

Sub AddForecastRows()
    Dim RngToCheck As Range
    Set RngToCheck = ThisWorkbook.Sheets("Invoiced Tons by Customer by Mo").Range("D3:D5000")
    Dim ValToFind As Long
    ValToFind = 2024

    Dim i As Long
    ' 从下往上遍历,避免插入行影响后续循环顺序
    For i = RngToCheck.Rows.Count To 1 Step -1
        If RngToCheck(i).Value = ValToFind Then
            ' 在当前行下方插入新行
            RngToCheck(i).Offset(1, 0).EntireRow.Insert
            ' 为新行的年份列(D列)填充2025
            RngToCheck(i).Offset(1, 0).Value = 2025
        End If
    Next i
End Sub

代码修改说明

  • 保持从下往上遍历的逻辑,确保插入新行后不会打乱未处理行的索引顺序
  • 调整插入行的语句为RngToCheck(i).Offset(1, 0).EntireRow.Insert,更直观地指向当前行的下一行位置
  • 新增RngToCheck(i).Offset(1, 0).Value = 2025,直接在新插入行的D列填入2025
  • 若数据范围或工作表名称有变化,可自行修改Range("D3:D5000")和工作表名称参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:57:04