Метод Show объекта Range, использующийся в VBA Excel для прокрутки первой ячейки заданного диапазона в область видимого экрана. Синтаксис, примеры.
Метод Range.Show
Если заданная ячейка (первая ячейка заданного диапазона) уже находится в пределах видимого экрана, прокрутка не произойдет.
Синтаксис метода Range.Show
1 |
Expression.Show |
Expression – выражение (переменная), представляющее объект Range.
На сайте разработчика сказано, что диапазон должен состоять из одной ячейки на активном листе. Тесты показывают, что можно указать диапазон из более, чем одной ячейки, и, в этом случае, по центу экрана будет размещена первая ячейка заданного диапазона.
Примеры
Пример 1
Отображение первой ячейки диапазона по центру экрана:
1 2 3 4 5 6 |
Sub Primer1() With Range(Cells(50, 50), Cells(60, 55)) .Interior.Color = vbGreen .Show End With End Sub |
Результат выполнения кода:
Пример 2
Отображение центральной ячейки диапазона по центру экрана после вычисления ее координат:
1 2 3 4 5 6 7 8 9 |
Sub Primer2() Dim r As Long, c As Long With Range(Cells(50, 50), Cells(60, 55)) .Interior.Color = vbGreen r = (.Cells(1).Row + .Cells(.Cells.Count).Row) \ 2 c = (.Cells(1).Column + .Cells(.Cells.Count).Column) \ 2 End With Cells(r, c).Show End Sub |
Если вы запускали код первого примера, попробуйте запустить код второго примера, не прокручивая перед этим рабочий лист. Вы убедитесь, что положение зеленого диапазона на видимом экране не изменится.
После этого вручную прокрутите рабочий лист так, чтобы зеленый диапазон скрылся из вида (должна быть скрыта ячейка Cells(r, c)
). Причем прокрутку сделайте как по строкам, так и по столбцам. После запуска кода из второго примера зеленый диапазон займет центральное положение на видимом экране:
Если скрыть зеленый диапазон прокруткой листа только по строкам или только по столбцам, положение непрокрученных столбцов (или строк) останется на экране прежним. Чтобы увидеть это наглядно, запустите код первого примера, прокрутите рабочий лист вручную только по строкам и запустите код второго примера. Затем повторите тест с прокруткой рабочего листа только по столбцам.