我遇到了需要在Excel工作表中间排除列的问题。有没有办法创建一个范围,排除不在数据边缘的列。范围是动态的,范围从A1:AA#。列“F”需要从此范围中排除。需要存储此范围以在pivotTable中使用。
Range("A1:E4,G1:J4").Select
这就是excel宏录制器创建带间隙的范围的方法,但我找不到修改它的方法,因此最后一个单元格是动态的。
感谢。
答案 0 :(得分:1)
正如您应该避免使用.Select
方法一样,您也应该尽可能避免使用.UsedRange
(See here)。
你可以尝试这样的事情。它不是那么干净,但可能证明不易出错。
Dim LRow As Long
LRow = Range("A" & Rows.Count).End(xlUp).Row
Dim MyRange1 As Range, MyRange2 As Range, BigRange As Range
Set MyRange1 = Range("A1:E" & LRow)
Set MyRange2 = Range("G1:J" & LRow)
Set BigRange = Application.Union(MyRange1, MyRange2)
BigRange.Select
然后,您可以直接向前推荐BigRange
。
答案 1 :(得分:0)
如果工作表中只有一组数据,您可以尝试这样的方法:
Intersect(ActiveSheet.UsedRange, Range("A:E,G:AA")).Select
除了F列以外,这将选择包含数据列AA列的所有内容。
只要有可能,您应该避免使用.select
.activate
,但是您只提供一行代码,因此除非将您重定向到{{3},否则我无法帮助您}。
答案 2 :(得分:0)
你可以使用
Dim rng As Range
Set rng = Intersect(Range("A:E,G:AA"), Rows(1).Resize(Cells(Rows.Count, 1).End(xlUp).Row))
Cells(Rows.Count, 1)
中的列索引允许您选择