2016-05-13 5 views
1

Я перебираю диапазон в столбце A, чтобы найти заголовок, после того как я найден, мне нужно выбрать следующую ячейку до последней использованной ячейки.Excel VBA диапазон выбора с помощью ячеек и xlDown

не могу за жизнь мне выбрать этот диапазон с помощью ячеек и 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)), но ни одна комбинация не будет работать.

Есть пустые ячейки в столбце А, пример данных, как так:

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

Благодарим за ответ и дополнительную информацию, это работает, и я ввел в действие явный образец, который вы предоставили. –

Смежные вопросы