У меня есть большой лист Excel, который я использую для управления примерно дюжиной проектов 1. Горизонтальное направление рабочего листа соответствует времени (в основном соседние столбцы соответствуют последовательным дням) и распространяется на многие горизонтальные экраны. Вертикальное направление намного короче (оно легко умещается в пределах одного экрана) и является более разнородным (некоторые строки соответствуют задачам, другие - ресурсам и т.д.).

Первый столбец заморожен (что неоценимо).

Здесь я буду использовать «(4-недельный) фокус» для обозначения прямоугольного диапазона ячеек, охватывающего по горизонтали 4-недельный интервал, начиная с крайнего левого видимого незамерзающего столбца, и по вертикали все строки, которые в данный момент находятся в использовать (которые являются первыми 30 или около того).

Конечно, какие конкретные ячейки находятся "в фокусе" в любой данный момент, зависит от текущего "состояния прокрутки" листа.

Есть ли способ проинструктировать Excel обрабатывать текущий диапазон "в фокусе", как если бы это был весь лист?2

Что наиболее важно, есть ли способ сказать Excel временно отключить всю прокрутку, как горизонтальную, так и вертикальную, и не только "прямую" прокрутку с помощью стрелок прокрутки или полос прокрутки, но также и "косвенную" прокрутку, которая происходит в ответ на какая-то другая операция, например, та, которая делает какую-то ячейку, которая в данный момент не полностью видна активной ячейкой?

Было бы хорошо, если бы, помимо отключения прокрутки, исправление диапазона «в фокусе» приводило к тому, что все операции, которые обычно применяются ко всей рабочей таблице, теперь применяются только к диапазону, который находится в фокусе. Например, CTRL-END активирует ячейку в самой нижней используемой строке самого правого используемого столбца в пределах диапазона фокусировки (а не для всей рабочей таблицы).

Есть ли способ сделать что-то подобное?

Спасибо!

1 Да, я знаю, что для такого рода вещей есть специализированное программное обеспечение, но для моих целей Excel работает отлично, спасибо.

2 Для тех, кто знаком с Emacs, операция, которую я имею в виду, полностью аналогична команде Emacs для narrow-to-region .

1 ответ1

0

что вам нужно это .ScrollArea которое возвращает или задает диапазон, в котором разрешена прокрутка, в качестве ссылки на диапазон в стиле A1. Также обратите внимание, что ячейки за пределами области прокрутки не могут быть выбраны.

Это устанавливает область прокрутки для первого рабочего листа в C1:AA22:

Worksheets(1).ScrollArea = "C1:AA22"

Задайте для этого свойства пустую строку "" чтобы включить выбор ячеек для всего листа.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .