创建范围不包括中间

时间:2018-06-13 02:18:07

标签: excel vba excel-vba

我遇到了需要在Excel工作表中间排除列的问题。有没有办法创建一个范围,排除不在数据边缘的列。范围是动态的,范围从A1:AA#。列“F”需要从此范围中排除。需要存储此范围以在pivotTable中使用。

Range("A1:E4,G1:J4").Select

这就是excel宏录制器创建带间隙的范围的方法,但我找不到修改它的方法,因此最后一个单元格是动态的。

感谢。

3 个答案:

答案 0 :(得分:1)

正如您应该避免使用.Select方法一样,您也应该尽可能避免使用.UsedRangeSee 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)中的列索引允许您选择

之后的范围列大小