Note: The other languages of the website are Google-translated. Back to English

Hvordan skjules rækker automatisk, hvis tomme celler i en kolonne?

Hvis du har en række data, der udfylder nogle tomme celler i en kolonne, og nu vil du automatisk skjule de rækker, der indeholder de tomme celler i denne kolonne. Er der nogen gode måder at løse dette job i Excel hurtigt og nemt?

Skjul rækker automatisk, hvis tomme celler i en kolonne med VBA-kode


pil blå højre boble Skjul rækker automatisk, hvis tomme celler i en kolonne med VBA-kode

Den følgende kode kan hjælpe dig med at skjule alle rækker, hvis tomme celler i en bestemt kolonne på én gang, og hvis du sletter celleindholdet i denne kolonne, skjules rækkerne også automatisk. Gør som følger:

1. Højreklik på arkfanen, som du vil skjule rækkerne automatisk, hvis der er tomme celler i en kolonne, og vælg derefter Vis kode fra genvejsmenuen, i poppet ud Microsoft Visual Basic til applikationer vindue, skal du kopiere og indsætte følgende kode i det tomme felt Moduler:

VBA-kode: Skjul rækker automatisk, hvis tomme celler i en kolonne:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("A1:A20")
            If xRg.Value = "" Then
                xRg.EntireRow.Hidden = True
        
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub

doc automatisk skjul rækker 1

Bemærk: I ovenstående kode, A1: A20 er datalisten, der indeholder de tomme celler, du vil skjule automatisk.

2. Gå derefter tilbage til regnearket, og nu, når du dobbeltklikker på en hvilken som helst celle og trykker på Indtast nøglen, de rækker, der indeholder tomme celler i kolonne A, er skjult på én gang, og hvis du rydder noget celleindhold i de angivne celler i kolonne A, skjules rækkerne automatisk.

doc automatisk skjul rækker 2

 


De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund

 

Sorter kommentarer efter
Kommentarer (32)
Ingen vurderinger endnu. Vær den første til at bedømme!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeg bruger excel 2016, og det virker ikke. Jeg får en sintax fejlmeddelelse. kan du hjælpe?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Ant,

Ovenstående kode fungerer godt i min Excel 2016, har du ændret cellereferencen i koden til dit behov?
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg får en Run-time fejl '13':



Skriv forskydning



Nogen der kan hjælpe???
Denne kommentar blev minimeret af moderatoren på webstedet
Kan jeg stoppe denne makro i at køre automatisk efter at have trykket på Enter? Kan jeg vedhæfte den til en knap for kun at skjule cellerne, når jeg klikker?
Denne kommentar blev minimeret af moderatoren på webstedet
har nogen nogensinde fundet ud af dette? Jeg vil også gerne vide det.
Denne kommentar blev minimeret af moderatoren på webstedet
nogen der har fundet svaret endnu?
Denne kommentar blev minimeret af moderatoren på webstedet
samme spørgsmål her
Denne kommentar blev minimeret af moderatoren på webstedet
Hej gutter,
For at skjule de rækker, som en specifik kolonne indeholder tomme celler ved at bruge en knap, skal du gøre følgende:
Først skal du indsætte en kommandoknap fra fanen Udvikler.
Og anvend derefter følgende VBA-kode for kommandoknappen (Bemærk: skift venligst cellereferencen a1:a20 til din egen)

Privat Sub CommandButton1_Click ()
Dim rng As Range, x As Range
Indstil rng = Range("a1:a20")
Application.ScreenUpdating = False
For hver x i rng
Hvis Len(x.Tekst) = 0 Så
x.EntireRow.Hidden = Sand
Else
x.EntireRow.Hidden = Falsk
End If
Næste x
Application.ScreenUpdating = True
End Sub

Prøv det, håber det kan hjælpe dig!
Denne kommentar blev minimeret af moderatoren på webstedet
hvordan skjuler man automatisk rækker, hvis der er tomme celler i 2 forskellige kolonner med VBA-kode
Denne kommentar blev minimeret af moderatoren på webstedet
Hej salpe,
For automatisk at skjule rækkerne, hvis der er tomme celler i 2 forskellige kolonner, skal du anvende følgende kode:

Privat Sub Worksheet_Change (ByVal Target As Range)
Dim xRg, xCell As Range
Dim xRgs, xRgArea As Range
Indstil xRgs = Range("A1:A22,D1:D22")
Application.ScreenUpdating = False
Ved fejl GoTo Ctn
For hvert xRgArea I xRgs.Areas
Debug.Print xRgArea.Address
For hver xRg i xRgArea.Columns
For hver xcelle i xRg.rækker
Hvis xCell.Value = "" Så
xCell.EntireRow.Hidden = Sand
Gå til Ctn
ElseIf Not xCell.EntireRow.Hidden derefter
xCell.EntireRow.Hidden = Falsk
End If
Ctn:
Næste
Næste
Næste
Application.ScreenUpdating = True
End Sub

Du kan ændre cellereferencerne efter dit behov.
Prøv det!
Denne kommentar blev minimeret af moderatoren på webstedet
بسم الله وجزاكم الله خيرا هذا الكود رائع ولكن حين قمت بتطبيق كود حذف الصف بتطبيق كود حذف الصف بسم الله
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg vil gerne vide, om koden vil fungere. Hvis cellen er tom som følge af Formel?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, ACHINTA,
Ovenstående VBA-kode anvendes også på de tomme celler som et resultat af formel, du kan prøve det, tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Formlen virker til at skjule celler baseret på information i begyndelsen, men afslører ikke celler igen, hvis deres indhold ændres. Jeg vil have den til at afsløre eventuelle nye celler, der er blevet fyldt med information (som sker via et celleopslag). Hvordan gør jeg dette?
Denne kommentar blev minimeret af moderatoren på webstedet
Bom dia, esta é minha necessidade também.

Præcis ocultar e quando a célula for preenchida (bruger uma fórmula que preenche a mesma se houver valor em outra planilha) seja reexibida a linha novamente de forma automática.

Tak.
Denne kommentar blev minimeret af moderatoren på webstedet
Det, jeg ønsker, er, at noget som dette fungerer i det aktive ark:

Hvis celler D2:D55 = ""
Derefter Hide.EntireRow

Hvis celler D2:D55 = "har enhver værdi"
Derefter Show.EntireRow

Hvordan?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Kacha, Du skal bare ændre cellereferencen i koden til dit eget celleområde som nedenfor: Private Sub Worksheet_Change(ByVal Target As Range)
'Opdatering af Extendoffice
Dim xRg As Range
Application.ScreenUpdating = False
For hver xRg i området("D2:D55")
Hvis xRg.Value = "" Så
xRg.EntireRow.Hidden = Sand

Else
xRg.EntireRow.Hidden = Falsk
End If
Næste xRg
Application.ScreenUpdating = True
Afslut underNår du har indsat koden, skal du huske at dobbeltklikke på en celle og trykke på Enter-tasten for at få koden til at træde i kraft.
Denne kommentar blev minimeret af moderatoren på webstedet
Hvad er den nemmeste måde at fortryde automatisk skjul?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, mình có dùng 2 kode trong 1 fil excel (1 kode là của bạn) với mục đích in ra những bản riêng biệt và không bị thừa dốngòng. Khi mình ấn in từng bản thì ok nhưng nếu in 1 loạt thì code Skjul không có tác dụng, bạn xem giúp mình vạnh nh cơnh nhơnh!

Under PRINT_PRINT()
Dim rng As Range, x As Range
Indstil rng = Range("a16:a23")
Application.ScreenUpdating = False
For hver x i rng
Hvis Len(x.Tekst) = 0 Så
x.EntireRow.Hidden = Sand
Else
x.EntireRow.Hidden = Falsk
End If
Næste x
Application.ScreenUpdating = True


Dim p1, p2, i&
p1 = Ark1.Range("O1").Værdi
p2 = Ark1.Range("O2").Værdi
If IsNumeric(p1) = False Eller IsNumeric(p2) = False Then
tb = MsgBox("Så kode phai la so.", , "Thông báo")
Exit Sub
End If
Hvis p1 > p2 Så
tb = MsgBox("So code sau phai >= so code truoc.", , "Thông báo")
Exit Sub
End If
Hvis p1 < 1 Eller p2 < 1 Så
tb = MsgBox("Så kode phai >= 1.", , "Thông báo")
Exit Sub
End If
Hvis p1 <= p2 Så
For i = p1 Til p2
Ark1.Range("M2").Værdi = i
Ark1.Udskriv
Næste
End If
End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
Hola, Necesito crear una macro que me oculte una columna.Sería así: en la primera fila poner un 1 a las columnas que no quiero ocultar y no poner ningún valor a las columnas que quiero ocultar. Estoy haciendo el siguiente código, men ikke se en que fallo:
Sub OcultarColumnaSin1()
Application.ScreenUpdating = False
For hver rango i kolonner
Hvis rango = "" Så
rango.EntireColumn.Hidden = Sand
Else
rango.EntireColumn.Hidden = Falsk
End If
Næste rango
Application.ScreenUpdating = True
End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
Dette fungerer godt for mig, det skjuler rækkerne og åbner dem, når mine værdier ændres baseret på formler. Det spørgsmål, jeg har, er, at mit ark er 104 rækker langt. Det buldrer lidt, hver gang jeg klikker på en celle. Nogen måde at fremskynde overgangen, når den er aktiveret? Eller er det min computer? Tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg vil gerne automatisk skjule rækker, hvis kolonne E er tom eller 0
Denne kommentar blev minimeret af moderatoren på webstedet
Hvis værdien i kolonne E er tom eller 0, vil jeg gerne have, at rækken automatisk skjules. Hvis værdien i E ændres til noget andet end blank eller 0, vil jeg gerne have den vist. Rapporten er på 1500 rækker
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Cathy,
For at skjule rækkerne automatisk baseret på tomme celler eller 0-værdier, brug venligst nedenstående vba-kode:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("E1:E1500")
            If (xRg.Value = "") Or (xRg.Value = "0") Then
                xRg.EntireRow.Hidden = True
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub


Prøv venligst, håber det kan hjælpe dig!
Denne kommentar blev minimeret af moderatoren på webstedet
Hvordan skjuler man en række, der indeholder afkrydsningsfeltet?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Sweta

For at skjule rækker med afkrydsningsfelt kan nedenstående artikel gøre dig en tjeneste:
Sådan skjules afkrydsningsfeltet, når rækken er skjult i Excel?

Prøv venligst, hvis du stadig har andre spørgsmål, bedes du kommentere her.
Denne kommentar blev minimeret af moderatoren på webstedet
Når du udfører koden i office 2013/2019/2021, virker den, men det tager for lang tid at fuldføre (kun 95 rækker at skjule).
Hvordan kan du fremskynde dette?
Tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Asaf,
Koden fungerer godt i min Excel-fil, kan du uploade din vedhæftede arbejdsbog her, hvis du ikke har noget imod det? Så vi kan hjælpe med at tjekke problemet.

Tak!
Denne kommentar blev minimeret af moderatoren på webstedet
apakah ada rumus lain?, saya berharap baris kosong itu akan terhapus saat mencetak fil menjadi PDF tapi tampilan di excelnya tetap
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Nurjanah
For at løse dit problem skal du først skjule de tomme rækker, og derefter udskrive dataene, efter at have udskrevet dataene, skal du vise de tomme rækker igen. Gør venligst som dette:
1. Anvend denne formel: =COUNTA(A2:E2) ved siden af ​​dine data, se skærmbillede:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-1.png
2. Filtrer derefter den nye hjælper Tom kolonne, skjul alle 0 værdi rækker, se skærmbillede:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-2.png
3. Og så skal du skjule den nye tomme kolonne og udskrive dataene, efter at have udskrevet regnearket, skal du annullere filteret for at vise de tomme rækker efter behov.
Prøv venligst, håber det kan hjælpe dig!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeg har problemer med "automatiseringen" af makroen. Jeg leder efter en måde, hvorpå koden kan fungere som en automatiseret proces uden behov for "manuelt" at køre makroen. Jeg har brugt min egen variant af din kode, fordi jeg har fundet problemer med at bruge din kode. Dette er min variant:

Sub HideRows()
Dim xRg As Range
Application.ScreenUpdating = False
For hver xRg i området("A3:A800")
Hvis (xRg.Value = "") Så
xRg.EntireRow.Hidden = Sand
Else
xRg.EntireRow.Hidden = Falsk
End If
Næste xRg
Application.ScreenUpdating = True
End Sub

Jeg forsøger at lave et regneark, som kræver konstant skiftende værdier, og derfor ville det kræve en ægte "automatiseret" proces. Jeg er relativt ny i VBA, og hvis din kode faktisk allerede opfylder mine krav, vil du have noget imod at hjælpe/lære mig at anvende den i VBA? Tak.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Vian
Faktisk kan koden i vores artikel køres automatisk.
Du skal kopiere og indsætte koden i kodemodulet i det aktuelle regneark, derefter vende tilbage til regnearket, dobbeltklikke på en celle og trykke på Indtast nøglen, er rækken, der indeholder den tomme celle, direkte skjult.

Følg venligst metoden i denne artikel trin for trin, håber det kan hjælpe dig!
Tak!
Der er endnu ingen kommentarer her
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL