通过VBA实现指定多列数据批量重复X次的技术需求
Excel VBA宏:批量重复多行多列数据(支持2000+行)
这个宏可实现选中的多行多列数据按指定次数重复,完全支持2000行以上的数据量,保留原列顺序。
宏代码
Sub RepeatRowsMultipleTimes() Dim sourceRange As Range Dim repeatTimes As Integer Dim targetRow As Long Dim i As Long, j As Long ' 选择需要重复的数据区域 Set sourceRange = Application.InputBox("请选择要重复的数据区域(可包含多列)", Type:=8) repeatTimes = Application.InputBox("请输入每行需要重复的次数", Type:=1) ' 取消操作或输入无效时退出 If sourceRange Is Nothing Or repeatTimes < 1 Then Exit Sub ' 目标起始行:源区域下方第一行 targetRow = sourceRange.Row + sourceRange.Rows.Count ' 循环处理每一行 For i = 1 To sourceRange.Rows.Count ' 重复指定次数 For j = 1 To repeatTimes sourceRange.Rows(i).Copy Destination:=Cells(targetRow, sourceRange.Column) targetRow = targetRow + 1 Next j Next i Application.CutCopyMode = False MsgBox "数据重复完成!" End Sub
使用步骤
- 打开目标Excel文件,按下
Alt + F11打开VBA编辑器 - 右键点击当前工作簿名称 → 插入 → 模块
- 将上述代码粘贴到新模块的代码窗口中
- 返回Excel界面,按下
Alt + F8,选择RepeatRowsMultipleTimes并点击「执行」 - 按提示选择要重复的数据区域(比如包含Store #、City、State、Zip的所有行),输入重复次数(如10)
- 等待执行完成,重复数据会自动追加到源数据下方
注意事项
- 支持任意列数,2000+行数据无压力(Excel 2007及以上版本支持1048576行,完全满足需求)
- 若不需要重复表头,选择数据时跳过表头行即可
- 执行前建议备份数据,避免误操作导致数据混乱
内容的提问来源于stack exchange,提问作者Annie Hall
相关产品推荐
相关产品推荐

