Оглавление
В этой статье я покажу вам, как можно заморозить панели рабочего листа Excel с помощью функции Visual Basic of Applications (VBA). Много раз во время работы в Excel нам нужно заморозить панели рабочего листа для удобства и лучшего восприятия. Сегодня вы узнаете, как это можно сделать с помощью функции VBA .
Замораживание панелей с помощью VBA в Excel (быстрый просмотр)
Sub Freeze_Panes_Row_and_Column() Range("C4").Select ActiveWindow.FreezePanes = True End Sub
Скачать Рабочую тетрадь для практических занятий
Скачайте эту рабочую тетрадь для тренировок, чтобы заниматься во время чтения этой статьи.
VBA Freeze Panes.xlsmВведение в "стоп-панели" Excel
В Microsoft Excel заморозить панели означает заморозить строку или столбец или оба таким образом, что даже если вы прокрутите полосу прокрутки вниз или вправо, эта строка или столбец всегда будут видны. Обычно это делается со строками или столбцами, содержащими заголовки набора данных.
Например, посмотрите на набор данных ниже. Здесь мы заморозили рабочий лист до строки 3 ( Годы ) и колонка B ( Наименование продукции ).
Когда мы опустимся вниз рабочего листа, прокручивая полосу прокрутки, мы обнаружим, что строки до строки 3 всегда видны.
То же самое для колонки B пока мы прокручиваем вправо.
Теперь, чтобы заморозить панели в рабочем листе вручную, выберите ячейку сразу после строки и столбца (Cell C4 в данном примере) и перейдите к Просмотр> Панели замораживания> Панели замораживания на панели инструментов Excel.
Чтобы заморозить только ряд, выделите весь ряд и перейдите к пункту Просмотр> Панели замораживания> Панели замораживания на панели инструментов Excel.
Аналогично, чтобы заморозить только столбец, выделите весь столбец и перейдите в меню Просмотр> Панели замораживания> Панели замораживания на панели инструментов Excel.
⧭ Примечания:
- Выберите Заморозить верхний ряд чтобы заморозить только верхний ряд.
- Аналогично, выберите Заморозить первый столбец чтобы заморозить только первый столбец.
5 способов замораживания панелей с помощью VBA в Excel
Мы узнали, что такое замораживание панелей в Excel и как сделать это вручную. Теперь перейдем к нашему главному обсуждению - как замораживать панели с помощью VBA .
1. Замораживание только строки с помощью VBA в Excel
Прежде всего, давайте посмотрим, как мы можем заморозить только ряд с VBA .
Как говорилось ранее, чтобы заморозить только ряд, сначала нужно выделить весь ряд, расположенный ниже ряда, который нужно заморозить (Row 4 в данном примере).
Затем вы должны применить Морозильные панели командование.
Поэтому VBA код будет:
⧭ Код VBA:
Sub Freeze_Panes_Only_Row() Range("C4").EntireRow.Select ActiveWindow.FreezePanes = True Range("C4").Select End Sub
⧭ Выход:
Запустите этот код. И вы увидите, что активный рабочий лист заморожен до строки 3 .
⧭ Примечания:
- Здесь мы использовали ячейку C4 для выбора любой ячейки строки 4 рабочего листа. Вы выбираете его в соответствии с вашими потребностями.
- Последняя строка кода Range("C4").Select предназначен для снятия выделения со всей строки 4 (Отмена выделения означает выбор нового выделения, так как в Excel что-то должно оставаться выделенным). При желании эту строку можно опустить.
Подробнее: Как заморозить верхнюю строку в Excel (4 простых способа)
2. Замораживание только столбца с помощью VBA в Excel
Мы уже видели, как можно заморозить ряд с помощью VBA Теперь давайте посмотрим, как заморозить колонку с помощью VBA .
Аналогично строке, для замораживания только столбца сначала нужно выделить весь столбец справа от замораживаемого столбца (Column C в данном примере).
Затем вы должны применить Морозильные панели командование.
Поэтому VBA код будет:
⧭ Код VBA:
Sub Freeze_Panes_Only_Column() Range("C4").EntireColumn.Select ActiveWindow.FreezePanes = True Range("C4").Select End Sub
⧭ Выход:
Запустите этот код. И вы увидите, что активный рабочий лист заморожен до столбца C .
⧭ Примечания:
- Здесь мы использовали ячейку C4 чтобы выбрать любую ячейку столбца C рабочего листа. Вы выбираете его в соответствии с вашими потребностями.
- Последняя строка кода Range("C4").Select предназначен для снятия выделения со всего столбца C (Отмена выделения означает выбор нового выделения, так как в Excel что-то должно оставаться выделенным). При желании эту строку можно опустить.
Читайте также: Как заморозить 2 столбца в Excel (5 способов)
3. Замораживание строки и столбца с помощью VBA в Excel
Мы уже видели, как можно заморозить строку и столбец по отдельности. В этот раз давайте посмотрим, как можно заморозить и строку, и столбец вместе.
Чтобы заморозить и строку, и столбец вместе, нужно выбрать ячейку под строкой, которую нужно заморозить, и справа от столбца, который нужно заморозить (Cell C4 в данном примере).
Затем вы должны применить Морозильные панели командование.
Поэтому VBA код будет:
⧭ Код VBA:
Sub Freeze_Panes_Row_and_Column() Range("C4").Select ActiveWindow.FreezePanes = True End Sub
⧭ Выход:
Запустите этот код. И вы увидите, что активный рабочий лист заморожен до строки 3 и колонка C .
⧭ Примечания:
- Здесь мы использовали ячейку C4 чтобы выбрать ячейку ниже строки 3 и справа в колонку B . Это клетка C4 Вы выбираете его в соответствии с вашими потребностями.
Подробнее: Как заморозить выделенные панели в Excel (10 способов)
Похожие чтения:
- Как заморозить несколько панелей в Excel (4 критерия)
- Клавиатурное сокращение для замораживания панелей в Excel (3 сокращения)
- Как заморозить первые 3 столбца в Excel (4 быстрых способа)
4. Разработка формы пользователя для замораживания панелей с помощью VBA в Excel
Мы видели, как с помощью VBA можно заморозить строку, столбец или и строку, и столбец в рабочем листе Excel.
Теперь мы разработаем форму пользователя, чтобы объединить все отдельные задачи в единый интерфейс.
⧭ Пошаговая процедура разработки формы пользователя:
⧪ Шаг 1:
- Нажмите ALT+F11 на клавиатуре, чтобы открыть Visual Basic
- В Visual Basic редактор, перейдите к Insert> UserForm чтобы вставить новый Форма пользователя .
⧪ Шаг 2:
- Новый UserForm под названием UserForm1 будет создан в VBA
- Слева от UserForm вы получите Ящик для инструментов под названием Контроль Наведите курсор мыши на панель инструментов и найдите в ней пункт TextBox (TextBox1) После того, как вы нашли один, перетащите его на верхнюю часть UserForm .
- Аналогично, перетащите ListBox ( ListBox1 ) прямо к Текстовое поле , и CommandButton (Commandbutton1) в правый нижний угол UserForm Измените отображение CommandButton на OK . Ваш UserForm теперь должна выглядеть следующим образом:
⧪ Шаг 3:
Вставить Модуль ( Вставка> Модуль ) из VBA ящик для инструментов
⧪ Шаг 4:
Вставить следующее VBA код в Модуль .
Sub Run_UserForm() UserForm1.Caption = "Freeze Panes" UserForm1.TextBox1.Text = Selection.Address UserForm1.TextBox1.BorderStyle = fmBorderStyleSingle UserForm1.ListBox1.BorderStyle = fmBorderStyleSingle UserForm1.ListBox1.ListStyle = fmListStyleOption UserForm1.ListBox1.AddItem "1. Freeze Row" UserForm1.ListBox1.AddItem "2. Freeze Column" UserForm1.ListBox1.AddItem "3. Freeze Both Row and Column"Load UserForm1 UserForm1.Show End Sub
⧪ Шаг 5:
Дважды щелкните на CommandButton отображается как OK . Частное подразделение под названием CommandButton1_Click откроется. Вставьте туда следующий код:
If UserForm1.ListBox1.Selected(0) = True Then Set Rng = Selection Rng.EntireRow.Select ActiveWindow.FreezePanes = True Rng.Select ElseIf UserForm1.ListBox1.Selected(1) = True Then Set Rng = Selection Rng.EntireColumn.Select ActiveWindow.FreezePanes = True Rng.Select ElseIf UserForm1.ListBox1.Selected(2) = True ThenActiveWindow.FreezePanes = True Else MsgBox "Выберите хотя бы одну. ", vbExclamation End If Unload UserForm1
⧪ Шаг 6:
Аналогичным образом дважды щелкните на TextBox1 . Частное подразделение под названием TextBox1_Change откроется. Вставьте туда следующий код.
Private Sub TextBox1_Change() On Error GoTo Message Range(TextBox1.Text).Select Message: Note = 5 End Sub
⧪ Шаг 7:
Ваш UserForm теперь готова к использованию. Выберите ячейку ниже строки, которую нужно заморозить, и правее столбца, который нужно заморозить (Cell C4 здесь), и запустите Макро под названием Run_UserForm .
⧪ Шаг 8:
- Сайт UserForm будет загружен. Вы найдете адрес выбранной ячейки ( C4 ) в TextBox Если вы хотите, вы можете изменить это.
- Затем выберите любой из трех вариантов, доступных в окне ListBox Здесь я хочу заморозить и строку, и столбец, поэтому я выбрал Заморозить и строку, и столбец .
- Затем нажмите OK .
⧪ Шаг 9:
Вы найдете рабочий лист замороженным по вашему желанию. (Здесь заморожен до строки 3 и колонка B ).
Похожие материалы: Как заморозить кадр в Excel (6 быстрых приемов)
5. Альтернатива панели замораживания в Excel: разделение окна с помощью VBA
Мы много говорили о морозильные стекла в Excel. Теперь давайте посмотрим на очень полезную альтернативу морозильные стекла в Excel Раздельное окно командование.
Вы можете ActiveWindow.SplitRow или ActiveWindow.SplitColumn в VBA чтобы разделить рабочий лист по строкам или столбцам.
Например, чтобы разделить рабочий лист со строки 3 , используйте:
ActiveWindow.SplitRow = 3
Аналогично, чтобы разделить рабочий лист по столбцам B , используйте:
ActiveWindow.SplitColumn = 2
⧭ Код VBA:
Sub Split_Window() ActiveWindow.SplitRow = 3 ActiveWindow.SplitColumn = 2 End Sub
⧭ Выход:
Запустите код, он разделит активный рабочий лист со строки 3 и колонка B .
Похожий материал: Как применять пользовательские панели замораживания в Excel (3 простых способа)
О чем следует помнить
- Перед применением Морозильные панели в Excel, вы должны Разморозьте все панели замораживания уже применяется. В противном случае Морозильные панели команда не сработает.
- Сайт Морозильные панели команда не будет работать через объединенный клетки. Так что объединить их перед применением Морозильные панели команду, если таковая имеется.
Заключение
Итак, вот методы, которые следует использовать Морозильные панели с VBA в Excel. Я попытался обсудить все возможные способы применения Морозильные панели над рабочим листом в Excel. У вас есть вопросы? Не стесняйтесь задавать их нам. И не забудьте посетить наш сайт ExcelWIKI для получения новых сообщений и обновлений.