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

请求修改VBA代码:插入缺失日期行并复制指定列下方数据

修改后的VBA代码及优化说明

没问题,我帮你调整了VBA代码,让插入的新行自动复制下方行的A至C列、E至L列数据。同时还优化了一些细节,避免潜在的小问题,下面是完整代码:

Dim wks As Worksheet
Set wks = Worksheets("NAV_REPORT")

Dim lastRow As Long
lastRow = wks.Range("D2").End(xlDown).Row

For i = lastRow To 2 Step -1
    Dim curcell As Date, prevcell As Date
    curcell = wks.Cells(i, 4).Value
    prevcell = wks.Cells(i - 1, 4).Value

    Do Until curcell - 1 <= prevcell
        wks.Rows(i).Insert xlShiftDown
        
        ' 复制下方行的A至C列到新行
        wks.Range(wks.Cells(i + 1, 1), wks.Cells(i + 1, 3)).Copy _
            Destination:=wks.Range(wks.Cells(i, 1), wks.Cells(i, 3))
        
        ' 复制下方行的E至L列到新行
        wks.Range(wks.Cells(i + 1, 5), wks.Cells(i + 1, 12)).Copy _
            Destination:=wks.Range(wks.Cells(i, 5), wks.Cells(i, 12))
        
        ' 填充新行的D列日期
        curcell = wks.Cells(i + 1, 4).Value - 1
        wks.Cells(i, 4).Value = curcell
    Loop
Next i

关键改动&优化点:

  • 新增数据复制逻辑:在插入新行后,立刻把原下方行(插入后变为i+1行)的A-C列、E-L列数据复制到新插入的i行,完美匹配你要的需求。
  • 变量类型声明:给curcell和prevcell加上Date类型声明,比默认的变体类型更严谨,避免日期相关的类型错误。
  • 工作表前缀规范:所有单元格/范围操作都加上wks前缀,确保代码始终针对NAV_REPORT工作表执行,不会因为当前活动工作表变化而出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:35:13