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

求助:基于Excel H列数值自动复制整行并插入对应次数的VBA实现

需求说明
  • 按单个纸箱生成装箱单明细:若某行对应N个纸箱(H列数值为N),需将该行复制N-1次并插入到原行下方(例如H列值为4时,需复制3次)。
  • 现有手动VBA需手动输入复制次数,希望实现自动化操作,无需手动输入次数,本人为VBA新手,寻求帮助。
  • 现有手动代码如下:
Sub copy_paste2()

    Dim i As Integer

     
    i = Application.InputBox("How many copies?", Type:=1)

     
    ActiveCell.Offset(1).Resize(i).EntireRow.Insert

    ActiveCell.Offset(1).Resize(i).EntireRow.Value = ActiveCell.EntireRow.Value

End Sub
自动化解决方案

以下是修改后的自动化代码,无需手动输入次数,会自动读取当前行H列的数值计算复制次数:

Sub AutoCopyRows()
    Dim currentRow As Long
    Dim copyCount As Integer
    Dim ws As Worksheet
    
    ' 指定当前操作的工作表为活动表
    Set ws = ActiveSheet
    ' 获取选中单元格所在的行号
    currentRow = ActiveCell.Row
    
    ' 读取H列对应行的数值,计算需要复制的次数(N-1)
    copyCount = ws.Cells(currentRow, "H").Value - 1
    
    ' 仅当需要复制的次数大于0时执行操作
    If copyCount > 0 Then
        ' 在当前行下方插入对应数量的空行
        ws.Rows(currentRow + 1 & ":" & currentRow + copyCount).Insert Shift:=xlDown
        ' 将当前行的内容(含格式)复制到插入的行中
        ws.Rows(currentRow).Copy Destination:=ws.Rows(currentRow + 1 & ":" & currentRow + copyCount)
    End If
End Sub
代码说明
  • 自动读取当前选中行H列的数值,自动计算需要复制的次数(N-1)
  • 加入判断逻辑,避免复制次数为0或负数时执行无效操作
  • 使用Rows.Copy方法复制整行,相比原代码的赋值方式,能完整保留单元格的格式、公式等内容
  • 代码添加了清晰注释,方便新手理解每一步的作用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:40:23