excel文件使用宏,每隔m行插入n行空白行

思路来源:请问如何在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文件使用宏,每隔m行插入n行空白行_第1张图片


excel文件使用宏,每隔m行插入n行空白行_第2张图片

看一下效果,随便建一个excel表,共27行。右图为点击运行按钮后的效果:分别在第5,10,15,20,15行处插入了空白行。

右图的效果是:每隔4行插入1行空白,也就是每5行最后1行是空白

excel文件使用宏,每隔m行插入n行空白行_第3张图片     excel文件使用宏,每隔m行插入n行空白行_第4张图片  

            图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

excel文件使用宏,每隔m行插入n行空白行_第5张图片    

图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


 

你可能感兴趣的:(excel文件使用宏,每隔m行插入n行空白行)