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

如何编写Excel宏实现每隔一行插入新行并复制原行内容

Excel 宏修改方案:插入行并复制原行内容

你原来的代码依赖Select操作,处理数千行数据时会非常卡顿,下面是优化后的完整代码,可同时满足插入空行、复制原行内容的需求:

Sub InsertAndCopyRows()
    Dim rng As Range
    Dim originalRowCount As Long
    Dim i As Long
    ' 关闭屏幕刷新,大幅提升大数量下的处理速度
    Application.ScreenUpdating = False
    Set rng = Selection
    originalRowCount = rng.Rows.Count
    
    ' 从下往上遍历,避免插入行导致的行号偏移漏处理问题
    For i = originalRowCount To 1 Step -1
        ' 在当前行下方插入新行
        rng.Rows(i).Offset(1).EntireRow.Insert
        ' 复制当前原行内容到刚插入的新行
        rng.Rows(i).EntireRow.Copy Destination:=rng.Rows(i).Offset(1).EntireRow
    Next i
    
    ' 清除剪贴板,恢复屏幕刷新
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub

改动说明

  • 循环顺序改为从下往上遍历:原代码从上往下插入行时,后续行号会不断偏移,容易出现漏处理的情况,倒序遍历可完全规避该问题
  • 新增了行内容复制逻辑:插入空行后直接将原行内容复制到新插入的行中
  • 关闭屏幕刷新:处理数千行数据时速度可提升10倍以上,不会出现界面卡顿
  • 变量类型从Integer改为Long:Integer最大仅支持32767行,超过该行数会报错,Long类型无该限制

使用方法

和原有宏用法完全一致:选中需要处理的单元格区域,运行该宏即可,最终效果和你给出的示例完全匹配,每一行原数据都会重复出现一次。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:30:00