我正在尝试制作一个图表,以多列作为源区域。
基本上,我想选择特定的列,在此我跳过一些列,然后将它们全部合并为一个范围。我设置了一个循环,在其中创建了一个范围,并将其地址附加到字符串中,并用逗号分隔它们。我很确定这是Excel希望其格式化的方式。
但是,我似乎无法从此字符串创建新范围。
我希望这里有人可以帮助我。
我非常想避免,必须将列复制到新的工作表中,并将其全部标记为一个范围。
我有以下代码,用于合并范围:
'Loops for each number of sections
For Z = 1 To Sheet1.txtNoSections
'Get gauge to use
Section = Workbooks(ThisWorkbook.Name).Worksheets(1).Cells(26 + Z, 6).Value
'Sets varibel for distance from root
Dist = Workbooks(ThisWorkbook.Name).Worksheets(1).Cells(26 + Z, 3).Value
'Get range to use
Set ChartRange = ActiveSheet.Range(ActiveCell, ActiveCell.Offset(rc, Section))
RangeString = RangeString & ChartRange.AddressLocal
If Z <> 1 Then
RangeString = RangeString & ","
End If
Next Z
然后,我试图用这样的东西获得一个新的范围,但是没有运气。
Dim ActualRange As Range
Set ActualRange = ActiveSheet.Range(RangeString)
当打印RangeString时,它看起来像这样:
$S$2$V$6181$S$2:$X$6181,$S$2:$Z$6181,$S$2:$AB$6181,$S$2:$AD$6181,$S$2:$AF$6181,$S$2:$AH$6181,$S$2:$AJ$6181,$S$2:$AL$6181,$S$2:$AN$6181,$S$2:$AP$6181,$S$2:$AR$6181,$S$2:$AT$6181,$S$2:$AV$6181,$S$2:$AX$6181,$S$2:$AZ$6181,$S$2:$BB$6181,$S$2:$BD$6181,$S$2:$BF$6181,$S$2:$BH$6181,$S$2:$BJ$6181,$S$2:$BL$6181,$S$2:$BN$6181,$S$2:$BP$6181
似乎同一个工会会这样做。
最佳答案
如以上评论所讨论的,处理此问题的最佳方法是使用本机VBA功能,例如Union
。
您可以找到有关如何使用它的一些参考:
在Daily dose of Excel
在vba Express
甚至是Chip Pearson's website上的“更好”联盟
但是,请注意,您可以回答自己的问题(甚至是highly recommended)并接受它。这样,您可以与社区共享知识,并使用自己的代码解决问题。
恕我直言,这比接受我的回答还要好。