Indholdsfortegnelse
I denne artikel vil jeg vise dig, hvordan du kan fryse ruderne i et Excel-regneark med Visual Basic of Applications (VBA). Mange gange, når vi arbejder i Excel, har vi brug for at fryse ruderne i regnearket for at gøre det nemmere og give en bedre oplevelse. I dag lærer du, hvordan du kan opnå dette med VBA .
Fryse paneler med VBA i Excel (hurtig visning)
Sub Freeze_Panes_Row_and_Column() Range("C4").Select ActiveWindow.FreezePanes = True End Sub
Download arbejdsbog til øvelser
Download denne arbejdsbog til træning, så du kan øve dig, mens du læser denne artikel.
VBA Fryse paneler.xlsmEn introduktion til Excel Freeze Panes
I Microsoft Excel betyder at fryse ruder at fryse en række eller en kolonne eller begge dele på en sådan måde, at den pågældende række eller kolonne altid vil være synlig, selv hvis du går nedad eller til højre ved at rulle med rullebjælken. Det gøres normalt med rækker eller kolonner, der indeholder overskrifterne i datasættet.
Se f.eks. på datasættet nedenfor. Her har vi frosset regnearket op til række 3 ( År ) og kolonne B ( Produkter Navn ).
Når vi går nedad i regnearket ved at rulle på rullebjælken, vil vi opdage, at rækkerne op til række 3 er altid synlige.
Det samme for kolonne B mens vi scroller til højre.
Hvis du vil fryse ruder i et regneark manuelt, skal du vælge cellen lige efter rækken og kolonnen (Celle C4 i dette eksempel) og gå til Vis> Fryseskiver> Fryseskiver i Excel-værktøjslinjen.
Hvis du kun vil fryse rækken, skal du vælge hele rækken og gå til Vis> Fryseskiver> Fryseskiver i Excel-værktøjslinjen.
Hvis du på samme måde kun vil fryse kolonnen, skal du vælge hele kolonnen og gå til Vis> Fryseskiver> Fryseskiver i Excel-værktøjslinjen.
⧭ Noter:
- Vælg Fryse øverste række for kun at fryse den øverste række.
- På samme måde skal du vælge Fryse første kolonne for kun at fryse den første kolonne.
5 metoder til at fryse paneler med VBA i Excel
Vi har lært, hvad det vil sige at fryse paneler i Excel, og hvordan man udfører det manuelt. Lad os nu gå til vores hoveddiskussion i dag, hvordan man fryser paneler med VBA .
1. Frys kun en række med VBA i Excel
Lad os først og fremmest se, hvordan vi kun kan fryse en række med VBA .
Som tidligere nævnt skal du for kun at fryse en række først vælge hele rækken under den række, der skal fryses (Row 4 i dette eksempel).
Derefter skal du anvende Fryse ruder kommando.
Så den VBA kode vil være:
⧭ VBA-kode:
Sub Freeze_Panes_Only_Row() Range("C4").EntireRow.Select ActiveWindow.FreezePanes = True Range("C4").Select End Sub
⧭ Udgang:
Kør denne kode, og du vil se, at det aktive regneark er frosset til række 3 .
⧭ Noter:
- Her har vi brugt cell C4 for at vælge en hvilken som helst celle i rækken 4 Du kan vælge den efter dit behov.
- Den sidste linje i koden Range("C4").Select har til formål at fjerne markeringen af hele rækken 4 (Hvis du fjerner markeringen af et valg, betyder det, at du vælger et nyt valg, da noget skal forblive markeret i Excel). Du kan udelade denne linje, hvis du ønsker det.
Læs mere: Sådan fryser du den øverste række i Excel (4 nemme metoder)
2. Frys kun en kolonne med VBA i Excel
Vi har set, hvordan vi kan fastfryse en række med VBA Lad os nu se, hvordan man fryser en kolonne med VBA .
Hvis du kun vil fryse en kolonne, skal du ligesom for rækken først vælge hele kolonnen til højre for den kolonne, der skal fryses (Kolonne C i dette eksempel).
Derefter skal du anvende Fryse ruder kommando.
Så den VBA kode vil være:
⧭ VBA-kode:
Sub Freeze_Panes_Only_Column() Range("C4").EntireColumn.Select ActiveWindow.FreezePanes = True Range("C4").Select End Sub
⧭ Udgang:
Kør denne kode, og du vil se, at det aktive regneark er fastfrosset op til kolonnen C .
⧭ Noter:
- Her har vi brugt cell C4 for at vælge en hvilken som helst celle i kolonnen C Du kan vælge den efter dit behov.
- Den sidste linje i koden Range("C4").Select har til formål at fjerne markeringen af hele kolonnen C (Hvis du fjerner markeringen af et valg, betyder det, at du vælger et nyt valg, da noget skal forblive markeret i Excel). Du kan udelade denne linje, hvis du ønsker det.
Læs mere: Sådan fryser du 2 kolonner i Excel (5 metoder)
3. Frys både række og kolonne med VBA i Excel
Vi har set, hvordan vi kan fastfryse en række og en kolonne hver for sig. Denne gang skal vi se, hvordan vi kan fastfryse både rækken og kolonnen sammen.
Hvis du vil fryse både rækken og kolonnen sammen, skal du vælge en celle under den række, der skal fryses, og til højre for den kolonne, der skal fryses (Cell C4 i dette eksempel).
Derefter skal du anvende Fryse ruder kommando.
Så den VBA kode vil være:
⧭ VBA-kode:
Sub Freeze_Panes_Row_and_Column() Range("C4").Select ActiveWindow.FreezePanes = True End Sub
⧭ Udgang:
Kør denne kode, og du vil se, at det aktive regneark er frosset til række 3 og kolonne C .
⧭ Noter:
- Her har vi brugt cell C4 for at vælge en celle under rækken 3 og til højre til kolonne B . det er en celle C4 Du kan vælge den efter dit behov.
Læs mere: Sådan fryser du udvalgte paneler i Excel (10 måder)
Lignende læsninger:
- Sådan fryser du flere paneler i Excel (4 kriterier)
- Tastaturgenvej til at fryse paneler i Excel (3 genveje)
- Sådan fryser du de første 3 kolonner i Excel (4 hurtige måder)
4. Udvikle en brugerformular til at fryse paneler med VBA i Excel
Vi har set, hvordan vi kan fastfryse en række eller en kolonne eller både række og kolonne med VBA i et Excel-regneark.
Nu skal vi udvikle en Userform for at samle alle de forskellige opgaver i en enkelt grænseflade.
⧭ Trin for trin procedure for udvikling af brugerformularen:
⧪ Trin 1:
- Tryk på ALT+F11 på dit tastatur for at åbne Visual Basic
- I den Visual Basic editor, gå til Indsæt> UserForm for at indsætte en ny Brugerformular .
⧪ Trin 2:
- En ny UserForm kaldet UserForm1 vil blive oprettet i VBA
- Til venstre for den UserForm , får du en Værktøjskasse kaldet Kontrol . Før musen hen over værktøjskassen og søg efter en Tekstboks (Tekstboks1) Når du har fundet en, skal du trække den hen over toppen af UserForm .
- På samme måde kan du trække en ListBox ( ListBox1 ) til højre til den Tekstfelt , og en CommandButton (Commandbutton1) til nederste højre hjørne af UserForm . Ændre visningen af den CommandButton til OK . Din UserForm bør nu se således ud:
⧪ Trin 3:
Indsæt en Modul ( Indsæt> Modul ) fra den VBA værktøjskasse
⧪ Trin 4:
Indsæt følgende VBA kode i den Modul .
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"Indlæs UserForm1 UserForm1.Show End Sub
⧪ Trin 5:
Dobbeltklik på den CommandButton vises som OK . en privat underafsnit kaldet CommandButton1_Click åbnes. Indsæt følgende kode der:
Hvis UserForm1.ListBox1.Selected(0) = True Så sæt Rng = Selection Rng.EntireRow.Select ActiveWindow.FreezePanes = True Rng.Select ElseIf UserForm1.ListBox1.Selected(1) = True Så sæt Rng = Selection Rng.EntireColumn.Select ActiveWindow.FreezePanes = True Rng.Select ElseIf UserForm1.ListBox1.Selected(2) = True Så sæt Rng.Select ElseIf UserForm1.ListBox1.Selected(2) = TrueActiveWindow.FreezePanes = True Else MsgBox "Select At Least One. ", vbExclamation End If Unload UserForm1
⧪ Trin 6:
På samme måde kan du dobbeltklikke på Tekstboks1 . en privat underafsnit kaldet TextBox1_Change åbnes. Indsæt følgende kode der.
Private Sub TextBox1_Change() On Error GoTo Message Range(TextBox1.Text).Select Message: Note = 5 End Sub
⧪ Trin 7:
Din UserForm er nu klar til brug. Vælg cellen under den række, der skal fryses, og til højre for den kolonne, der skal fryses (Cell C4 her), og kør Makro kaldet Run_UserForm .
⧪ Trin 8:
- UserForm vil blive indlæst. Du finder adressen på den valgte celle ( C4 ) i den Tekstboks Hvis du ønsker det, kan du ændre dette.
- Vælg derefter en af de tre muligheder, der er tilgængelige i ListBox Her ønsker jeg at fryse både række og kolonne, så jeg har valgt Fryse både række og kolonne .
- Klik derefter på OK .
⧪ Trin 9:
Du finder regnearket frosset efter dit ønske. (Her frosset op til række 3 og kolonne B ).
Relateret indhold: Sådan fryser du billedet i Excel (6 hurtige tricks)
5. Alternativ til Frysevinduer i Excel: Opdel vinduet med VBA
Vi har talt meget om den fryse ruder i Excel. Lad os nu se et meget nyttigt alternativ til den fryse ruder i Excel, den Splitvindue kommando.
Du kan ActiveWindow.SplitRow eller ActiveWindow.SplitColumn på VBA for at opdele regnearket i rækker eller kolonner.
Hvis du f.eks. vil opdele regnearket fra række 3 , bruge:
ActiveWindow.SplitRow = 3
På samme måde kan du opdele regnearket fra kolonne B , bruge:
ActiveWindow.SplitColumn = 2
⧭ VBA-kode:
Sub Split_Window() ActiveWindow.SplitRow = 3 ActiveWindow.SplitColumn = 2 End Sub
⧭ Udgang:
Kør koden, den opdeler det aktive regneark fra række 3 og kolonne B .
Relateret indhold: Sådan anvendes bruger du brugerdefinerede frysefelter i Excel (3 nemme måder)
Ting at huske
- Før du anvender Fryse ruder i Excel, skal du Frigør alle frysefelter allerede anvendt. Ellers vil den Fryse ruder kommandoen virker ikke.
- Fryse ruder kommandoen vil ikke fungere gennem sammenlagt celler. Så fjerne sammenlægning dem, før du anvender Fryse ruder kommandoen, hvis der er en.
Konklusion
Så disse er de metoder, du skal bruge Fryse ruder med VBA i Excel. Jeg har forsøgt at diskutere alle mulige måder at anvende Fryse ruder over et regneark i Excel. Har du spørgsmål? Du er velkommen til at spørge os. Og glem ikke at besøge vores hjemmeside ExcelWIKI for flere indlæg og opdateringer.