Съдържание
В тази статия ще ви покажа как можете да замразите панелите на работен лист на 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 Замразяване на панели.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.
Сега ще разработим Userform, за да обединим всички отделни задачи в един интерфейс.
⧭ Процедура стъпка по стъпка за разработване на формуляра на потребителя:
⧪ Стъпка 1:
- Натиснете ALT+F11 на клавиатурата, за да отворите Visual Basic
- В Visual Basic редактор, отидете в Insert> UserForm за вмъкване на нов Потребителска форма .
⧪ Стъпка 2:
- Нов Потребителски формуляр наречен UserForm1 ще бъде създаден в VBA
- Вляво от Потребителски формуляр , ще получите Кутия за инструменти наречен Контрол . Наведете мишката върху кутията с инструменти и потърсете TextBox (TextBox1) След като откриете една от тях, плъзнете я върху горната част на Потребителски формуляр .
- По същия начин плъзнете ListBox ( ListBox1 ) до Текстово поле , и CommandButton (Commandbutton1) в долния десен ъгъл на Потребителски формуляр . Промяна на дисплея на CommandButton към OK . Потребителски формуляр вече трябва да изглежда по следния начин:
⧪ Стъпка 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"Зареждане на UserForm1 UserForm1.Show End Sub
⧪ Стъпка 5:
Кликнете два пъти върху CommandButton показани като OK . A Private Sub, наречен 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 В противен случай MsgBox "Select At Least One. ", vbExclamation End If Разтоварване на UserForm1
⧪ Стъпка 6:
По същия начин кликнете два пъти върху TextBox1 . A Private Sub, наречен TextBox1_Change ще се отвори. Въведете следния код там.
Private Sub TextBox1_Change() On Error GoTo Message Range(TextBox1.Text).Select Message: Note = 5 End Sub
⧪ Стъпка 7:
Вашият Потребителски формуляр Изберете клетката под реда, който ще бъде замразен, и вдясно от колоната, която ще бъде замразена (Cell C4 тук), и стартирайте Macro наречен Run_UserForm .
⧪ Стъпка 8:
- Сайтът Потребителски формуляр Ще намерите адреса на избраната клетка ( C4 ) в TextBox Ако искате, можете да промените това.
- След това изберете някоя от трите налични опции в ListBox . Тук искам да замразя и реда, и колоната, затова избрах Замразяване на ред и колона .
- След това щракнете върху ОК .
⧪ Стъпка 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 за повече публикации и актуализации.