我正在使用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
答案 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。