如何根据E列cell的值在对应cell下方插入对应数量行,macro实现方法
Excel VBA 批量插入空行实现方案
运行前请务必备份原表格,避免误操作丢失数据
实现特点
- 完全匹配需求逻辑:自动遍历E列所有非空数值单元格,在对应单元格下方插入和单元格数值相等数量的空行
- 采用从下往上遍历逻辑,无需手动计算插入行后的跳转位置,不会出现错位漏处理的问题,稳定性更高
使用步骤
- 打开目标表格,按下
Alt + F11唤出VBA编辑器 - 在左侧项目资源管理器中右键点击你的工作簿名称,依次选择「插入」→「模块」
- 将下方的代码复制粘贴到弹出的模块编辑窗口中
- 按下
F5直接运行,或者关闭VBA编辑器后按下Alt + F8,选中InsertRowsByEValue宏点击执行即可
如果你的数据不是从第2行开始(比如表头占了2行,数据从第3行开始),只需要把代码中For i = lastRow To 2 Step -1里的2修改为对应的数据起始行号即可。
Sub InsertRowsByEValue() Dim lastRow As Long Dim i As Long Dim insertCount As Long ' 获取E列最后一个非空单元格的行号 lastRow = Cells(Rows.Count, "E").End(xlUp).Row ' 从最后一行向上遍历,避免插入行影响未处理单元格的行号 For i = lastRow To 2 Step -1 ' 仅处理E列有值且为正整数的单元格 If Not IsEmpty(Cells(i, "E")) And IsNumeric(Cells(i, "E")) Then insertCount = CInt(Cells(i, "E").Value) If insertCount > 0 Then ' 在当前行下方插入指定数量的空行 Rows(i + 1 & ":" & i + insertCount).Insert Shift:=xlDown End If End If Next i End Sub
内容的提问来源于stack exchange,提问作者Thought_85
相关产品推荐
相关产品推荐

