2011-05-02 62 views
-1

我正在尝试执行上述操作,但失败。参考下面的图片,我需要在第四行(约翰李)下面插入五个空行,第七行下面的另外五个空行(布莱恩键)和第九行下面的另外五个(casey carton)等,我得到了30 +不同名称的团体做。想知道如何写这个vba?谢谢。Excel-VBA在每组名称下面插入五个空行

name

回答

4

所以在排序列中的一个变化之后5个空白?

Const blanks = 5 
Dim lastValue As String, i As Long, r As Long 
Do 
    r = r + 1 
    If r > 1 And lastValue <> Cells(r, 1).Value Then 
     If Cells(r, 1).Value = "" Then Exit Do 
     For i = 1 To blanks 
      Rows(r).Insert Shift:=xlDown 
     Next 
     r = r + blanks 
    End If 
    lastValue = Cells(r, 1).Value 
Loop 

Cells()1是列索引,即1 == A

+0

我爱怎么这会扎进碰上片和崩溃:-)哦,你无限制'待办事项Loop'的底部。 @Kwai Lum,考虑在'Loop'语句之前添加'If r> lastRowIWantToCheck Then Exit Do'。 – 2011-05-02 18:14:11

+0

我没有打算检查一个完全空的列 - 这是唯一会导致它失控的场景 - 否则它会打破第一个空单元的循环(第6行) – 2011-05-02 18:25:39

+1

哎呀,对,对不起!我在脑子里空着的一列上跑它。 – 2011-05-02 18:39:53