我循环遍历A列中的一个范围以找到标题,一旦找到,我需要选择下一个单元格到最后一个使用过的单元格。
在我的生命中不能使用Cells和End(xlDown)选择此范围
For k = 1 To lastCell
If Cells(k, 1).Value = rangeName Then
Range(Range(Cells(k + 1, 1)), Range(Cells(k + 1, 1)).End(xlDown)).Select
End If
Next k
我尝试了Range(Cells(k + 1, 1), Cells(k + 1, 1).End(xlDown))
,但没有任何组合可以使用。
A列中有空白单元格,数据示例如下:
MONTH
Jan
Feb
AGE
18-21
22+
GENDER
Male
Female
Horse
如果rangeName
等于GENDER
,我将如何选择此范围。
答案 0 :(得分:2)
以下内容应该有效:
For k = 1 To lastCell
If Cells(k, 1).Value = rangeName Then
Range(Cells(k + 1, 1), Cells(k + 1, 1).End(xlDown)).Select
End If
Next k
然而,我建议您更明确地编码以确保其有效:
With Worksheets("SheetYouAreWorkingOn")
For k = 1 To lastCell
If .Cells(k, 1).Value = rangeName Then
.Range(.Cells(k + 1, 1), .Cells(k + 1, 1).End(xlDown)).Select
End If
Next k
End With
使用空/新文件中的示例数据进行测试:
Public Sub tmpSO()
Dim lastCell As Long
Dim rangeName As String
rangeName = "AGE"
With Worksheets("Sheet1")
lastCell = .Cells(.Rows.Count, 1).End(xlUp).Row
For k = 1 To lastCell
If .Cells(k, 1).Value = rangeName Then
.Range(.Cells(k + 1, 1), .Cells(k + 1, 1).End(xlDown)).Select
End If
Next k
End With
End Sub