Как заморозить конкретную строку в Excel с помощью VBA

Если у вас есть большой объем данных, может быть полезно держать конкретную линию в поле зрения при прокрутке экрана. Хотя вы можете сделать это вручную, используйте VBA, чтобы выбрать строку и «заморозить» панель.

В этой статье мы покажем вам, как заблокировать верхнюю панель в зависимости от объема ваших данных.

Типичный сценарий, в котором полезна команда VBA Freeze Pane

В качестве примера мы будем использовать загруженный файл, содержащий более 100 записей.

Это может быть список клиентов или сотрудников, в которых вы хотите «заморозить» верхнюю строку при прокрутке записей.

Данные могут выглядеть так:


имя
======
Emp1
етр2
Emp3
,
,
Emp100
Emp101

Мы предполагаем, что вы используете VBA для сохранения данных в новом листе, вместо того, чтобы вручную копировать и вставлять.

После того, как вы закончили загрузку данных из кода, вы можете заблокировать верхнюю строку, если есть более 100 записей.

Для начала нужно определить, сколько записей:


дим рнг как диапазон
тусклые записи так долго
установить rng = диапазон ("a1"). currentRegion.columns (1)
entry = rng.rows.count

После проверки количества строк в наборе данных вы можете условно установить команду панели замораживания, выбрав строку под указанной ячейкой.

Мы намерены заморозить верхний ряд, но сначала нам нужно «разблокировать» существующие панели.


activeWindow.freezepanes = false
если записи> 100

диапазон («а2»). активировать

activeWindow.freezepanes = true
Конец, если

Если вы хотите указать строку для замораживания, вы можете вставить в код следующую команду.


myRow = x + 1
диапазон («а» и х) активировать
activeWindow.freezepanes = true

Тот же метод можно использовать для установки команды замораживания на основе других переменных или критериев. В приведенном ниже примере код останавливает окно под ячейкой, содержащей «Январь 2013».


установить rng = диапазон ("a1"). currentRegion.columns (1)
myCell = "январь 2013"

Для x = 1 до rng.Rows.Count

Если rng.Rows (x) = p Далее

myCell = rng.Rows (x) .Offset (1, 0). Адрес

Выходи за

Конец, если
после
Покрытие (myCell). активировать
ActiveWindow.freezePanes = True

Или код может искать ячейку жирным шрифтом.


Для x = 1 до rng.Rows.Count

Если rng.Rows (x) .font.bold = true, то

myCell = rng.Rows (x) .Offset (1, 0). Адрес

Выходи за

Конец, если
после
Покрытие (myCell). активировать
ActiveWindow.freezePanes = True

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

  • Настройте событие изменения рабочего листа, чтобы указать, когда количество записей превышает указанное число.
  • Сохраните код в существующей процедуре импорта данных
  • Создайте тег, например, жирным шрифтом или значением ячейки, чтобы код мог определить правильное местоположение для замороженной панели.

резюме

Excel может хранить большие объемы данных, но это хорошая идея, чтобы сделать ваш проект электронной таблицы максимально удобным для пользователя. Используя команду замороженных панелей, вы можете уменьшить количество ошибок и упростить жизнь любому, кто использует файл Excel.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *