思路来源:请问如何在excel每间隔相同距离行插入空行?(链接:https://iask.sina.com.cn/b/1SXyoIH6kE5p.html)提问者:类似于5000行数据,每隔5行插入1行数据
我选了答案中的第一个答案:
Sub 宏1()
For i = 1 To 5000 / 5
Range("A" & i * 5).Select
Selection.EntireRow.Insert
Next
End Sub
我用的是Office Excel来建立宏的(WPS使用宏要安装插件,可以搜一下),视图->宏,为宏命名,点击创建。将复制上述代码粘贴过来稍作修改,将5000行改为更小的一个值,例如25行。
看一下效果,随便建一个excel表,共27行。右图为点击运行按钮后的效果:分别在第5,10,15,20,15行处插入了空白行。
右图的效果是:每隔4行插入1行空白,也就是每5行最后1行是空白
图1 原表 图2 宏的运行结果
我想做的是每隔1行插入3行空白,例如先只针对前5行,每1行后面插入3行空白
Sub 宏1()
For i = 1 To 5
Range("A" & 2 + (i - 1) * 4).Select
Selection.EntireRow.Insert
Selection.EntireRow.Insert
Selection.EntireRow.Insert
Next
End Sub
图3 仍以图1为原表,运行后的结果
针对每隔m行插入n行,对于循环变量i,每次插入的位置为i*m+(i-1)*n+1
因为第i个循环中,空白插入的位置之前有i个m行(i*m个“数据行”,即原表中存在的行,不包括前i-1个循环中插入的空白行),和i-1个n行空白(因为已经进行了i-1个循环,每个循环插入n行空白)
代入m=1,n=3 化简为4*i - 2 ; 上述代码中的2 + (i - 1) * 4 也化简为4*i - 2
代入m=4,n=1 化简为5*i ;开头的代码处的算式也是5*i
如果有100行,i的范围取1到100/i