0. 使用背景
日常工作中常常会遇到需要在EXCEL看板中批量删除/插入大量空白行的情况(通常为想要加入/删去某些指标),当看板数据量过大时,一条条手动插入是不现实且浪费时间的行为,VBA能够自动化地在excel中实现某些重复性动作,十分适合这类使用场景。
1. 从第k行开始,隔n行插入j个空白行
'在第k行上面插入j个空白行,并此后每隔n行插入j个空白行
Sub 迭代插入空行()
Dim n As Integer 'n为隔行数
Dim j As Integer 'j为插入空白行数
Dim i As Integer 'i为循环计数器
Dim k As Integer 'k为当前行数
k = 1580 '从第k行开始循环
n = 27 '隔n行插入空白行
j = 5 '每次插入j行空白行
For i = 1 To j '上方插入j行
Rows(k).Insert Shift:=xlDown
Next i
k = k + j ' 指针下移j格
Do While Cells(k + j, 1) <> "" '循环直到遇到空行
k = k + n '指针下移n行
For i = 1 To j '插入j行空白行
Rows(k).Insert Shift:=xlDown
Next i
k = k + j '跳过插入的j行空白行
Loop
End Sub
2. 从第k行开始,隔n行删除j个空白行
'在第k行上面删除j个空白行,并此后每隔n行删除j个空白行
Sub 隔n行删除i行()
Dim n As Integer 'n为隔行数
Dim j As Integer 'j为删除空白行数
Dim i As Integer 'i为循环计数器
Dim k As Integer 'k为当前行数
k = 1 '从第k行开始循环
n = 30 '隔n行删除空白行
j = 2 '每次删除j行空白行
For i = 1 To j '删除j行
Rows(k).Delete Shift:=xlDown
Next i
Do While Cells(k, 1) <> "" '循环直到遇到空行
k = k + n '跳过n行
For i = 1 To j '插入j行空白行
Rows(k).Delete Shift:=xlDown
Next i
Loop
End Sub
注:
Shift: = xlDown ' 指针下移 Shift: = xlUp ' 指针上移