2011-05-02 58 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