2016-05-13 272 views
1

我正在循環遍歷A列中的範圍以找到標題,一旦找到需要選擇下一個單元格到最後一個使用的單元格。使用Excel VBA使用單元格和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))細胞和end(xlDown)

不能爲我的生命選擇此範圍內,但沒有組合將正常工作。

有在A列中的空白單元格,數據的一個例子是這樣:

MONTH 
Jan 
Feb 

AGE 
18-21 
22+ 

GENDER 
Male 
Female 
Horse 

我怎麼會去選擇這個範圍內,如果rangeName是等於GENDER例如。

回答

1

下面應該工作:

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 
+0

謝謝你的答案和額外的信息,這是行得通的,我對你提供的顯式樣本給予了高度的評價。 –

相關問題