Vba 创建不包括中间列的范围 我有一个问题,需要在Excel工作表的中间排除列。是否有一种方法可以创建一个范围,以排除不在数据边缘的列。范围为A1:AA#的动态范围。“F”列需要从该范围中排除。需要存储此范围以便在数据透视表中使用 Range("A1:E4,G1:J4").Select

Vba 创建不包括中间列的范围 我有一个问题,需要在Excel工作表的中间排除列。是否有一种方法可以创建一个范围,以排除不在数据边缘的列。范围为A1:AA#的动态范围。“F”列需要从该范围中排除。需要存储此范围以便在数据透视表中使用 Range("A1:E4,G1:J4").Select,vba,excel,Vba,Excel,这就是excel宏记录器创建带间隙的区域的方式,但我找不到修改的方法,因此最后一个单元格是动态的 谢谢。如果您的工作表中只有一组数据,您可以尝试以下方法: Intersect(ActiveSheet.UsedRange,Range(“A:E,G:AA”)。选择 这将选择工作表中除F列以外的所有包含AA列数据的内容 只要有可能,您应该避免使用。选择。激活,但您只提供了一行代码,因此在这方面我帮不了您多少忙,只能将您重定向到。正如您应该避免使用。选择方法一样,您也应该避免使用。如果可能,请使用dRa

这就是excel宏记录器创建带间隙的区域的方式,但我找不到修改的方法,因此最后一个单元格是动态的


谢谢。

如果您的工作表中只有一组数据,您可以尝试以下方法:

Intersect(ActiveSheet.UsedRange,Range(“A:E,G:AA”)。选择

这将选择工作表中除F列以外的所有包含AA列数据的内容


只要有可能,您应该避免使用
。选择
。激活
,但您只提供了一行代码,因此在这方面我帮不了您多少忙,只能将您重定向到。

正如您应该避免使用
。选择
方法一样,您也应该避免使用
。如果可能,请使用dRange

你可以试试这样的。它没有那么干净,但可能被证明不那么容易出现错误

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

您可以使用

Dim rng As Range
Set rng = Intersect(Range("A:E,G:AA"), Rows(1).Resize(Cells(Rows.Count, 1).End(xlUp).Row))

其中,
单元格中的列索引(Rows.Count,1)
允许您选择范围后的列大小

谢谢!这正是我要找的。我没有使用select,而是使用Var=Intersect(ActiveSheet.UsedRange,Range(“A:E,G:AA”))创建要使用的范围。