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

时间:2016-04-03 17:20:37

标签: excel vba

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

2 个答案:

答案 0 :(得分:1)

您需要使用Range.Areas property。区域是构成Union的连续行。

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

我已经颠倒了复制/插入的顺序以维持原始顺序。

答案 1 :(得分:0)

希望我明白你的意思。 Excel只能插入继续复制的行。此规则不仅适用于Excel,也适用于VBA。

我建议您使用selection.count/32768来获取所选行数。然后你编写一些代码来插入行数然后粘贴选择而不是直接插入。

说,如果要将第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)