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

Cum să ascundeți automat rândurile dacă celulele goale dintr-o coloană?

Dacă aveți o serie de date care populează unele celule goale dintr-o coloană și acum, doriți să ascundeți rândurile care conțin celulele goale din acea coloană automat. Există modalități bune de a rezolva rapid și ușor acest job în Excel?

Ascundeți automat rândurile dacă celulele goale dintr-o coloană cu cod VBA


săgeată albastru dreapta balon Ascundeți automat rândurile dacă celulele goale dintr-o coloană cu cod VBA

Următorul cod vă poate ajuta să ascundeți toate rândurile dacă există celule goale dintr-o anumită coloană simultan și, dacă ștergeți conținutul celulei din acea coloană, rândurile vor fi ascunse și ele automat. Vă rugăm să faceți următoarele:

1. Faceți clic dreapta pe fila de foaie pe care doriți să ascundeți automat rândurile dacă există celule goale într-o coloană, apoi alegeți Afișați codul din meniul contextual, în fereastra pop-out Microsoft Visual Basic pentru aplicații fereastra, copiați și lipiți următorul cod în spațiul gol Module:

Cod VBA: Ascundeți automat rândurile dacă celulele goale dintr-o coloană:

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 auto ascunde rândurile 1

notițe: În codul de mai sus, A1: A20 este lista de date care conține celulele goale pe care doriți să le ascundeți automat.

2. Apoi reveniți la foaia de lucru și acum, când faceți dublu clic pe orice celulă și apăsați Intrați tasta, rândurile care conțin celule goale în coloana A au fost ascunse simultan și, dacă ștergeți orice conținut de celulă din celulele specificate ale coloanei A, rândurile vor fi ascunse automat.

doc auto ascunde rândurile 2

 


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab

 

Comentarii (32)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, folosesc Excel 2016 și nu funcționează. Primesc un mesaj de eroare sintaxă. poți să ajuți?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, furnică,

Codul de mai sus funcționează bine în Excel 2016, ați modificat referința celulei din cod în funcție de nevoile dvs.?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Primesc o eroare de rulare „13”:



Nepotrivire de tip



Cineva care poate ajuta???
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pot opri această macrocomandă să ruleze automat după ce apes pe Enter? Aș putea să-l atașez la un buton pentru a ascunde celulele doar când dau clic?
Acest comentariu a fost redus la minimum de moderatorul de pe site
si-a dat cineva vreodata seama asta? si eu as vrea sa stiu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
a venit cineva cu răspunsul?
Acest comentariu a fost redus la minimum de moderatorul de pe site
aceeasi intrebare aici
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna baieti,
Pentru a ascunde rândurile pe care o anumită coloană conține celule goale folosind un buton, procedați astfel:
În primul rând, ar trebui să inserați un buton de comandă din fila Dezvoltator.
Apoi aplicați următorul cod VBA pentru butonul de comandă (Notă: vă rugăm să schimbați referința celulei a1:a20 la propria dvs.)

Sub CommandButton privat 1_Click()
Dim rng As Range, x As Range
Set rng = Range("a1:a20")
Application.ScreenUpdating = Fals
Pentru fiecare x In rng
Dacă Len(x.Text) = 0 Atunci
x.EntireRow.Hidden = Adevărat
Altfel
x.EntireRow.Hidden = Fals
Final, dacă
Următorul x
Application.ScreenUpdating = Adevărat
End Sub

Vă rugăm să încercați, sper că vă poate ajuta!
Acest comentariu a fost redus la minimum de moderatorul de pe site
cum să ascundeți automat rândurile dacă celulele goale în 2 coloane diferite cu cod VBA
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut, salpe,
Pentru a ascunde automat rândurile dacă celulele goale în 2 coloane diferite, vă rugăm să aplicați următorul cod:

Subsol de lucrări private_Change (țintă ByVal ca rază de acțiune)
Dim xRg, xCell As Range
Dim xRgs, xRgArea As Range
Set xRgs = Range ("A1:A22,D1:D22")
Application.ScreenUpdating = Fals
La eroare GoTo Ctn
Pentru fiecare xRgArea În xRgs.Areas
Debug.Print xRgArea.Address
Pentru fiecare xRg În xRgArea.Columns
Pentru fiecare xCell din xRg.Rows
Dacă xCell.Value = "" Atunci
xCell.EntireRow.Hidden = Adevărat
GoTo Ctn
ElseIf Not xCell.EntireRow.Hidden Atunci
xCell.EntireRow.Hidden = Fals
Final, dacă
Ctn:
Pagina Următoare →
Pagina Următoare →
Pagina Următoare →
Application.ScreenUpdating = Adevărat
End Sub

Puteți modifica referințele de celule în funcție de nevoile dvs.
Vă rugăm să încercați!
Acest comentariu a fost redus la minimum de moderatorul de pe site
بسم الله وجزاكم الله خيرا هذا lo الكود رائع ولكن حين قمت بتطبيق كود حذف الصف يبطأ الشيت بطريقة طويلة جداster
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vreau să știu dacă codul va funcționa Dacă celula este goală ca urmare a formulei?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, ACHINTA,
Codul VBA de mai sus este aplicat și celulelor goale ca urmare a formulei, ați putea încerca, mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Formula funcționează pentru a ascunde celulele pe baza informațiilor, la început, dar nu le dezvăluie din nou dacă conținutul lor se modifică. Vreau să dezvăluie orice celule noi care au fost umplute cu informații (care are loc printr-o căutare de celule). Cum pot face acest lucru?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bom dia, esta é minha necessidade alsom.

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

Multumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ceea ce vreau este ceva de genul acesta să funcționeze în foaia activă:

Dacă celulele D2:D55 = ""
Apoi Hide.EntireRow

Dacă celulele D2:D55 = „are orice valoare”
Apoi Show.EntireRow

Cum?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, Kacha, trebuie doar să schimbați referința celulei din cod în propriul interval de celule, după cum urmează: Private Sub Worksheet_Change(ByVal Target As Range)
'Actualizare de Extendoffice
Dim xRg As Range
Application.ScreenUpdating = Fals
Pentru fiecare xRg din interval ("D2:D55")
Dacă xRg.Value = "" Atunci
xRg.EntireRow.Hidden = Adevărat

Altfel
xRg.EntireRow.Hidden = Fals
Final, dacă
Următorul xRg
Application.ScreenUpdating = Adevărat
Terminare SubDupă introducerea codului, vă rugăm să nu uitați să faceți dublu clic pe orice celulă și să apăsați tasta Enter pentru ca codul să intre în vigoare.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Care este cel mai simplu mod de a anula ascunderea automată?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, mình có dùng 2 cod trong 1 fișier excel (1 cod 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 trống. Khi mình ấn în từng bản thì ok nhưng nếu în 1 loạt acest cod Ascunde không có tác dụng, bạn xem giúp mình với nhé, mình cảm!

Sub PRINT_PRINT()
Dim rng As Range, x As Range
Set rng = Range("a16:a23")
Application.ScreenUpdating = Fals
Pentru fiecare x In rng
Dacă Len(x.Text) = 0 Atunci
x.EntireRow.Hidden = Adevărat
Altfel
x.EntireRow.Hidden = Fals
Final, dacă
Următorul x
Application.ScreenUpdating = Adevărat


Dim p1, p2, i&
p1 = Sheet1.Range("O1").Valoare
p2 = Sheet1.Range("O2").Valoare
Dacă IsNumeric(p1) = Fals sau IsNumeric(p2) = Fals, atunci
tb = MsgBox ("So code phai la so.", , "Thông báo")
Ieșiți din Sub
Final, dacă
Dacă p1 > p2 Atunci
tb = MsgBox ("So code sau phai >= so code truoc.", , "Thông báo")
Ieșiți din Sub
Final, dacă
Dacă p1 < 1 Sau p2 < 1 Atunci
tb = MsgBox ("Deci codul phai >= 1.", , "Thông báo")
Ieșiți din Sub
Final, dacă
Dacă p1 <= p2 Atunci
Pentru i = p1 La p2
Sheet1.Range("M2").Valoare = i
Sheet1.PrintOut
Pagina Următoare →
Final, dacă
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hola,Necesito crea una macro que me oculte una columna.Sería así: în prima fila pune un 1 a las columnas que nu quiero ocultar și nu pune niciun valor a las columns que quiero ocultar. Faceți următorul cod, dar nu vedeți că fals:
Sub OcultarColumnaSin1()
Application.ScreenUpdating = Fals
Pentru fiecare rango în coloane
Dacă rango = "" Atunci
rango.EntireColumn.Hidden = Adevărat
Altfel
rango.EntireColumn.Hidden = False
Final, dacă
Următorul rango
Application.ScreenUpdating = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acest lucru funcționează grozav pentru mine, ascunde rândurile și le deschide atunci când valorile mele se schimbă pe baza formulelor. Întrebarea pe care o am este că foaia mea are 104 rânduri. Se agita puțin de fiecare dată când dau clic pe o celulă. Vreo modalitate de a accelera tranziția atunci când este activată? Sau este computerul meu? Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aș dori să ascund automat rândurile dacă coloana E este goală sau 0
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dacă valoarea din coloana E este goală sau 0, aș dori ca rândul să se ascundă automat. Dacă valoarea din E se schimbă în altceva decât gol sau 0, aș dori să apară. Raportul are 1500 de rânduri
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Cathy,
Pentru a ascunde automat rândurile pe baza celulelor goale sau a valorilor 0, vă rugăm să utilizați codul vba de mai jos:
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


Vă rugăm să încercați, sper că vă poate ajuta!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum să ascund rândul care conține caseta de selectare?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Sweta

Pentru a ascunde rândurile cu caseta de selectare, articolul de mai jos vă poate face o favoare:
Cum să ascundeți caseta de selectare când rândul este ascuns în Excel?

Vă rugăm să încercați, dacă mai aveți alte întrebări, vă rugăm să comentați aici.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Când executați codul în Office 2013/2019/2021, funcționează, dar durează prea mult timp pentru a fi finalizat (doar 95 de rânduri pentru a fi ascunse).
Cum poți accelera asta?
Multumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Asaf,
Codul funcționează bine în fișierul meu Excel, ați putea încărca aici registrul de lucru atașat dacă nu vă deranjează? Ca să putem ajuta la verificarea problemei.

Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
apakah ada rumus lain?, saya berharap baris kosong itu akan terhapus saat mencetak file menjadi PDF tapi tampilan di excelnya tetap
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Nurjanah
Pentru a vă rezolva problema, mai întâi, ar trebui să ascundeți rândurile goale, apoi să imprimați datele, după ce ați imprimat datele, trebuie să ascundeți din nou rândurile goale. Vă rugăm să faceți așa:
1. Aplicați această formulă: =COUNTA(A2:E2) lângă datele dvs., vedeți captura de ecran:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-1.png
2. Apoi, filtrați noua coloană Helper Blank, ascundeți toate rândurile cu valori 0, vedeți captura de ecran:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-2.png
3. Și apoi, ar trebui să ascundeți noua coloană goală și să tipăriți datele, după imprimarea foii de lucru, vă rugăm să anulați filtrul pentru a afișa rândurile goale după cum aveți nevoie.
Vă rugăm să încercați, sper că vă poate ajuta!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, am probleme cu „automatizarea” macrocomenzii. Caut o modalitate prin care codul să funcționeze ca un proces automat, fără a fi nevoie de a rula „manual” macrocomanda. Am folosit propria mea variantă a codului dvs. deoarece am găsit probleme pentru a utiliza codul dvs. Aceasta este varianta mea:

Sub AscundeRânduri()
Dim xRg As Range
Application.ScreenUpdating = Fals
Pentru fiecare xRg din interval ("A3:A800")
Dacă (xRg.Value = "") Atunci
xRg.EntireRow.Hidden = Adevărat
Altfel
xRg.EntireRow.Hidden = Fals
Final, dacă
Următorul xRg
Application.ScreenUpdating = Adevărat
End Sub

Încerc să creez o foaie de calcul care necesită valori în continuă schimbare, prin urmare ar necesita o procedură „automatizată” autentică. Sunt relativ nou în VBA și dacă codul dvs. într-adevăr întrunește deja cerințele mele, ați deranja să mă ajutați/învățați-l să îl aplic în VBA? Mulțumiri.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Vian
De fapt, codul din articolul nostru poate fi rulat automat.
Trebuie să copiați și să lipiți codul în modulul de cod al foii de lucru curente, apoi să reveniți la foaia de lucru, să faceți dublu clic pe orice celulă și să apăsați butonul Intrați tasta, rândul care conține celula goală va fi este direct ascuns.

Vă rugăm să urmați metoda din acest articol pas cu pas, sper că vă poate ajuta!
Mulțumesc!
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL