如何将包含不连续行的复制范围插入到其他位置?

这是一个简单的问题。 例如,我有行(1)行(3),我可以将它们合并成相同的范围。 我可以粘贴他们但我不能插入他们!

您需要使用Range.Areas属性 。 该地区是组成联盟的连续的行。

Sub insertAreas() Dim a As Long, rng As Range Set rng = Union(Rows(1), Rows(3)) For a = rng.Areas.Count To 1 Step -1 rng.Areas(a).Copy Rows(10).Insert Shift:=xlDown Next a End Sub 

我已经颠倒了复制/插入的顺序来保持原来的顺序。

希望我明白你的意思。 Excel只能插入连续复制的行。 这个规则不仅适用于Excel,而且适用于Excel。

我build议你使用selection.count/32768来获得所选的行数。 然后你写一些代码插入行的数量,然后粘贴的select,而不是直接插入。

比方说,如果你想复制第1行和第3行到第5行。

您可以

set myRng=Range("1:1,3:3") runNum=myRng.count / 32768 for i = 1 to runNum rows(5).insert next myRng.copy rows(5)