如何在Excel中实现每行复制后粘贴至原行下方?
如何在Excel中将每一行复制并粘贴到该行下方?
刚好处理过类似的需求,给你两种实用方案,根据你的数据量选就行:
方案一:手动操作(适合小数据集)
如果你的行数不多(比如示例里的3行),用辅助列+排序的方法最快:
- 新增一列(比如D列),在D1输入
1,D2输入1,D3输入2,D4输入2,D5输入3,D6输入3(对应你要重复的每行编号) - 选中整个数据区域(包括新增的辅助列,比如A1:C6)
- 点击顶部菜单栏的数据→排序,在对话框里选择以D列为关键字升序排序
- 排序完成后,删掉辅助列就行,完美得到你要的每行重复一次的效果
方案二:VBA宏(适合大数据集)
如果你的表格有几百上千行,手动操作太麻烦,写个宏一键搞定:
- 打开你的Excel文件,按
Alt+F11打开VBA编辑器 - 在左侧工程窗口右键点击你的工作簿,选择插入→模块
- 把下面的代码粘贴进去:
Sub DuplicateEachRow() Dim ws As Worksheet Dim lastRow As Long Dim i As Long ' 替换成你实际要操作的工作表名称,比如"Sheet2" Set ws = ThisWorkbook.Sheets("Sheet1") ' 获取数据最后一行的行号 lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' 从最后一行往上循环,避免插入行打乱行号顺序 For i = lastRow To 1 Step -1 ' 复制当前行 ws.Rows(i).Copy ' 在当前行下方插入复制的内容 ws.Rows(i + 1).Insert Shift:=xlDown ' 清空剪贴板,防止后续操作出错 Application.CutCopyMode = False Next i End Sub
- 回到Excel界面,按
Alt+F8,选中DuplicateEachRow这个宏,点击运行,几秒钟就能完成所有行的重复操作
注意:如果你的表格有合并单元格,建议先取消合并再运行宏,否则可能出现排版错乱的问题。
内容的提问来源于stack exchange,提问作者Andre van Rensburg
相关产品推荐
相关产品推荐

