如何追加或组合范围?

时间:2014-08-21 08:55:40

标签: excel vba excel-vba

我正在使用Excel VBA进行应用程序,我需要从变量中的不同工作表中复制一些范围 所有范围都具有相同的列数但行数不同。我在考虑制作一个矩阵。只需将每张Sheet中的UsedRange附加到另一张中......但没办法

For i = 1 To wbDataFile.Sheets.Count

    Set wsCPDataFile = wbDataFile.Sheets(wbDataFile.Sheets(i).Name)
    If Not DataRng Is Nothing Then
        Set DataRng=  DataRng (Append??)
    Else
    ' the first valid cell becomes rng2
        Set DataRng = wsCPDataFile.UsedRange
    End If

Next I
Data = DataRng

2 个答案:

答案 0 :(得分:9)

使用Union。像这样:

Sub jzz()
Dim rng As Range

Set rng = Range("A1")

Set rng = Union(rng, Range("A2"))

End Sub

答案 1 :(得分:0)

Excel vba提供了用于范围组合的内置方法,

如果需要duplicate the same range,则需要自己动手,例如参考rng5

Sub duplicateRange()

    Dim rng1 as Range, rng2 as Range, rng3 as Range, rng4 as Range, rng5 as Range

    Set rng1 = Range("A1")
    Set rng2 = Range("A1")

    Set rng3 = Union(rng1, rng2) ' this will give Range("A1") only

    Set rng4 = Intersect(rng1, rng2) ' this will give Range("A1") only

    Set rng5 = Range(rng1.Address & "," & rng2.Address) ' this will give Range("A1,A1")

End Sub

尽管看起来很傻,但我最近遇到了需要将此重复的多个范围用于绘图的需求。我的xValue指向相同的单元格,但指向不同的yValue。