2012-07-06 85 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)应插入