Доброго времени суток!
Как обратиться к диапазону Умной таблицы. Написал код - он рабочий. Но на мой взгляд так писать не совсем верно.
Я имею ввиду диапазон Range("B7:B14").
Дело в том что у нас есть объект Умная таблица "Таблица1" внутри которой именованный диапазон/массив "Наименование", а мы обращаемся к колонке активного листа.
А если в колонке "В" над таблицей будут записи? ...
Или колонка "В" не закончится на 14 строке?.... Можно, конечно написать Range("B7:B"), но опять обращаемся к колонке листа.
А что если взять и переместить таблицу внутри листа со смещением? И такое может быть.
Справка VBA так и предлагает обращаться Range("Test")? в моём случае Range("Наименование"), или Application.Goto "Test" - как бы не так??? Ни чего не выходит.
Объявлял объект, присваивал значения - ни чего и ни как?
Кто знает - подскажите.
Спасибо.
-
Как обратиться к диапазону Умной таблицы. Написал код - он рабочий. Но на мой взгляд так писать не совсем верно.
Код |
---|
Private Sub ComboBox1_Change() Dim n As String Dim i As Long Dim lLastRow As Long Dim rgResult As Range lLastRow = Cells(Rows.Count, 2).End(xlUp).Row - 1 n = ComboBox1.Text Set rgResult = Range("B7:B14").Find(n, , xlValues) For i = 7 To lLastRow Step 1 If rgResult = n Then rgResult.Select End If Next End Sub |
Дело в том что у нас есть объект Умная таблица "Таблица1" внутри которой именованный диапазон/массив "Наименование", а мы обращаемся к колонке активного листа.
А если в колонке "В" над таблицей будут записи? ...
Или колонка "В" не закончится на 14 строке?.... Можно, конечно написать Range("B7:B"), но опять обращаемся к колонке листа.
А что если взять и переместить таблицу внутри листа со смещением? И такое может быть.
Справка VBA так и предлагает обращаться Range("Test")? в моём случае Range("Наименование"), или Application.Goto "Test" - как бы не так??? Ни чего не выходит.
Объявлял объект, присваивал значения - ни чего и ни как?
Кто знает - подскажите.
Спасибо.
-
Кто хочет — ищет способы, кто не хочет — причины (Сократ)