2012-07-06 41 views
1

我想每58行插入19行。這個宏插入一個一行,我似乎無法得到它插入19宏每隔n行插入19行?

Sub Insert58() 
    Dim rng As Range 

    Set rng = Range("A3") 
    While rng.Value <> "" 
     rng.Offset(58).EntireRow.Insert 
     Set rng = rng.Offset(59) 
    Wend 
End Sub 

回答

3

使用rng.Offset(58).resize(19).EntireRow.Insert

+0

無論出於何種原因兩行+的總和,使用這行代碼,它只添加19個新行,但不會重複。任何想法爲什麼? – 2012-07-06 23:30:05

+0

因爲你的while子句不再是真的。 – 2012-07-06 23:40:14

+0

謝謝克里斯!我是vba新手,你知道我會如何解決它嗎? – 2012-07-06 23:41:23

0

傑夫,

試試這個:

Sub Insert58_v2() 
    Dim rng As Range 

    Set rng = Range("A3") 
    While rng.Value <> "" 
     rng.Offset(58).Resize(19).EntireRow.Insert 
     Set rng = rng.Offset(77) 
    Wend 
End Sub 
1

Gimp的回答當然是可編輯的:

Set rng = Range("A3")是開始單元格

rng.Offset(58)是「之後的每個行多少」

Resize(19)是多少行插入

Set rng = rng.Offset(77)應插入