vba 行中的自定义选择
Custom selection in row with vba
我的问题很简单:如何定义从某个单元格到行尾的范围?
如果您知道我要达到什么目的,您就会更好地理解这种情况:我想单独对行进行排序,但每一行的数据都从 17. 列开始,所以我尝试从 17 开始排序. 列到列数的末尾。
提前致谢!
在 VBA 中定义范围:Dim rng As Range
。
设置范围(因为是对象,必须使用Set
关键字):Set rng = Range("A1:B2")
或
Set rng = Range(Cells(1, 1), Cells(2, 2))
- 两者是等价的。
因此,如果您想在从第 17 列开始的一行中指定自定义范围,您还必须知道行的结束位置,您可以通过两种方式实现:
Dim lastCol As Long
lastCol = Cells(rowNumber, 17).End(xlToRight).Column
'alternative, but not equivalent
lastCol = Cells(rowNumber, Columns.Count).End(xlToLeft).Column
其中rowNumber
是一行的具体数字。
现在,有了 lastCol
我们可以定义范围:
Set rng = Range(Cells(rowNumber, 17), Cells(rowNumber, lastCol))
同样,rowNumber
是行的特定编号。
我的问题很简单:如何定义从某个单元格到行尾的范围?
如果您知道我要达到什么目的,您就会更好地理解这种情况:我想单独对行进行排序,但每一行的数据都从 17. 列开始,所以我尝试从 17 开始排序. 列到列数的末尾。
提前致谢!
在 VBA 中定义范围:Dim rng As Range
。
设置范围(因为是对象,必须使用Set
关键字):Set rng = Range("A1:B2")
或
Set rng = Range(Cells(1, 1), Cells(2, 2))
- 两者是等价的。
因此,如果您想在从第 17 列开始的一行中指定自定义范围,您还必须知道行的结束位置,您可以通过两种方式实现:
Dim lastCol As Long
lastCol = Cells(rowNumber, 17).End(xlToRight).Column
'alternative, but not equivalent
lastCol = Cells(rowNumber, Columns.Count).End(xlToLeft).Column
其中rowNumber
是一行的具体数字。
现在,有了 lastCol
我们可以定义范围:
Set rng = Range(Cells(rowNumber, 17), Cells(rowNumber, lastCol))
同样,rowNumber
是行的特定编号。