我正在尝试获取设置Range对象的第一行的单元格。同时避免使用Activate
,Select
。范围是动态的(将循环更新为新行),因此无法使用Offset
。
这就是我所拥有的:
Set curr_ws = Worksheets("Data")
Dim data_curr_rng As Range
tool_sel = curr_ws.Range(data_curr_rng.Address(0, 0)).Offset(-4).Value
'Regardless of the column number of `data_curr_rng`, I need the cell in that column's Row 1
我一直在使用变量data_curr_rng,但是似乎无法找出要使用的正确函数/属性。
答案 0 :(得分:1)
您可以使用Cells()
的{{1}}功能
Worksheet
如果您需要选择一个以上单元格的范围,可以像这样将其包装在my_row = 1
my_column = 5
Set my_range = Application.ThisWorkbook.Sheets(1).Cells(my_row, my_column)
中
Range
答案 1 :(得分:0)
光标所在的位置具有此代码,ActiveCell, 您可以结合使用ActiveCell和Row和.End()
下面的代码返回第一个单元格UP(Ctrl + UpArrow)
ActiveCell.End(xlUp)
下面的代码
答案 2 :(得分:0)
您的原始代码是:
Set curr_ws = Worksheets("Data") Dim data_curr_rng As Range tool_sel = curr_ws.Range(data_curr_rng.Address(0, 0)).Offset(-4).Value 'Regardless of the column number of `data_curr_rng`, I need the cell in that column's Row 1
您要的是选择选定的范围,确定整列,然后选择第一个单元格(即第1行)。
Set curr_ws = Worksheets("Data")
Dim data_curr_rng As Range
Set data_curr_rng = [Something] ` your example does not note how you set this.
' *** The solution to your question is below
Dim firstCellInColumn as Range ` could be cell etc. - using this to illustrate the concept
Set firstCellInColumn = data_curr_rang.EntireColumn.Cells(1,1)
' *** The back to your code
tool_sel = firstCellInColumn.Value
EntireColumn
方法返回一个范围,然后在上面的示例中,我只是获取了该范围内的第一个单元格。