Excel 工会没有拿起所有的范围

Excel 工会没有拿起所有的范围,excel,vba,Excel,Vba,我遇到了一些挑战,工会没有在一个大的宏观经济中运作。它应该连接几个范围,但它似乎只拾取第一个范围。为了帮助隔离挑战,我将所有代码精简为: Dim copiedrange As Range Dim SrcWB As Workbook Dim SrcWS As Worksheet Set SrcWB = Workbooks("all-euro-data-2018-2019 (1)") Set SrcWS = SrcWB.Sheets("E1") i = 1 Set copiedrange =

我遇到了一些挑战,工会没有在一个大的宏观经济中运作。它应该连接几个范围,但它似乎只拾取第一个范围。为了帮助隔离挑战,我将所有代码精简为:


Dim copiedrange As Range
Dim SrcWB As Workbook
Dim SrcWS As Worksheet

Set SrcWB = Workbooks("all-euro-data-2018-2019 (1)")
Set SrcWS = SrcWB.Sheets("E1")

i = 1

Set copiedrange = Union(SrcWS.Range("A" & i & ":F" & i), SrcWS.Range("AX" & i), _
SrcWS.Range("AZ" & i), SrcWS.Range("BH" & i & ":BJ" & i))

MsgBox copiedrange.Columns.Count

End Sub

出于某种原因,列计数返回为6(A到F),而我认为它应该更高,以考虑所有其他范围。我错过了什么/做错了什么/成为一个白痴了什么


提前谢谢

工会
工作绝对正常。例如,
MsgBox copiedRange.Address
返回
$A$1:$F$1,$AX$1,$AZ$1,$BH$1:$BJ$1

您遇到了
Range.Columns
列的行为。Count返回第一个区域中的列数(
$A$1:$F$1

从文件中:

当应用于多区域选择的
范围
对象时,此属性仅从范围的第一个区域返回列。例如,如果
范围
对象有两个区域-
A1:B2
C3:D4
-
选择列。计数
返回2,而不是4。要在可能包含多个区域选择的区域上使用此属性,请测试
Areas.Count
,以确定该区域是否包含多个区域。如果有,则在范围内的每个区域上循环