2015-07-27 3 views
2

Когда я выбираю диапазоны от объекта WorkSheet, один из методов, который я могу использовать, - MySheet.Range("A1"). Есть ли аналогичный подход, который я могу использовать для выбора поддиапазона существующего объекта диапазона?Выберите столбец из заданного диапазона по адресу

Чтобы сделать мой вопрос более конкретный вот пример:

Допустим, что при изменении выбора на конкретном листе я хочу сообщить пользователю, сколько «Колонка I» клетки находятся в этом диапазоне. С моим текущим пониманием VBA Я хотел бы сделать что-то вроде следующего:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Dim col As Range 
    For Each col In Target.Columns 
     If col.Column = Range("I:I").Column Then 
      MsgBox col.Rows.Count 
     End If 
    Next 
End Sub 

есть более гибкий способ индексировать поддиапазон?

+0

Вы говорите, если пользователь выбирает 'H1: J3' вы хотите выбрать поддиапазон' I1: I3'? –

+0

В качестве примера да! Я думаю, что ответ Алекс К. - это то, что я ищу. Но если у вас есть другое предложение, я был бы рад расширить свои возможности :) –

ответ

3

Один из способов смотреть на пересечении:

Dim ir As Range 
Set ir = Application.Intersect(Target, Range("I:I")) 
If Not ir Is Nothing Then MsgBox ir.Cells.Count 
+0

Хорошая идея! Спасибо за помощь :) –

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