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

Як автоматично приховати рядки, якщо порожні клітинки в стовпці?

Якщо у вас є діапазон даних, який заповнює кілька порожніх комірок у стовпці, і зараз, ви хочете автоматично приховати рядки, які містять порожні клітинки в цьому стовпці. Чи є якісь хороші способи вирішити цю роботу в Excel швидко і легко?

Автоматично приховувати рядки, якщо порожні клітинки в стовпці з кодом VBA


стрілка синя права міхур Автоматично приховувати рядки, якщо порожні клітинки в стовпці з кодом VBA

Наступний код може допомогти вам приховати всі рядки, якщо порожні клітинки в певному стовпці одночасно, і якщо ви видалите вміст комірки в цьому стовпці, рядки також будуть автоматично приховані. Будь ласка, виконайте наступне:

1. Клацніть правою кнопкою миші на вкладці аркуша, яку потрібно автоматично приховати, якщо в стовпці є порожні клітинки, а потім виберіть Переглянути код з контекстного меню, що з’явиться Microsoft Visual Basic для додатків вікно, скопіюйте та вставте наступний код у порожнє Модулі:

Код VBA: Автоматичне приховування рядків, якщо порожні клітинки в стовпці:

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 автоматично приховувати рядки 1

примітки: У наведеному вище коді, A1: A20 - це список даних, який містить порожні клітинки, які потрібно автоматично приховати.

2. Потім поверніться до робочого аркуша і тепер, коли ви двічі клацнете будь-яку клітинку та натисніть вводити ключ, рядки, які містять порожні комірки в стовпці A, були відразу приховані, і якщо ви очистите будь-який вміст комірок у зазначених клітинках стовпця A, рядки будуть автоматично приховані.

doc автоматично приховувати рядки 2

 


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці

 

Коментарі (32)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Привіт, я використовую Excel 2016 і він не працює. Я отримую повідомлення про синтаксичну помилку. Ви можете допомогти?
Цей коментар був мінімізований модератором на сайті
Привіт, Мурашка,

Наведений вище код добре працює в моєму Excel 2016, чи змінили ви посилання на клітинку в коді відповідно до ваших потреб?
Цей коментар був мінімізований модератором на сайті
Я отримую помилку під час виконання ´13´:



Type mismatch



Хтось може допомогти???
Цей коментар був мінімізований модератором на сайті
Чи можу я зупинити автоматичний запуск цього макросу після натискання клавіші Enter? Чи можу я приєднати його до кнопки, щоб приховувати клітинки лише під час натискання?
Цей коментар був мінімізований модератором на сайті
хтось колись це зрозумів? Я теж хотів би знати.
Цей коментар був мінімізований модератором на сайті
хтось вже придумав відповідь?
Цей коментар був мінімізований модератором на сайті
те саме питання тут
Цей коментар був мінімізований модератором на сайті
Привіт, хлопці,
Щоб приховати рядки, у яких певний стовпець містить порожні клітинки, за допомогою кнопки, виконайте такі дії:
По-перше, ви повинні вставити кнопку команди з вкладки «Розробник».
А потім застосуйте наступний код VBA для командної кнопки (Примітка: будь ласка, змініть посилання на клітинку a1:a20 на власне)

Приватна підкоманда CommandButton1_Click()
Dim rng As Range, x As Range
Встановити rng = діапазон ("a1:a20")
Application.ScreenUpdating = Невірний
Для кожного х В кіль
Якщо Len(x.Text) = 0, то
x.EntireRow.Hidden = True
Ще
x.EntireRow.Hidden = False
End If
Далі х
Application.ScreenUpdating = True
End Sub

Будь ласка, спробуйте, сподіваюся, це допоможе вам!
Цей коментар був мінімізований модератором на сайті
як автоматично приховати рядки, якщо порожні клітинки в 2 різних стовпцях за допомогою коду VBA
Цей коментар був мінімізований модератором на сайті
Привіт, сальпе,
Щоб автоматично приховати рядки, якщо клітинки в двох різних стовпцях пусті, застосуйте наступний код:

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRg, xCell як діапазон
Dim xRgs, xRgArea як діапазон
Встановіть xRgs = діапазон ("A1:A22,D1:D22")
Application.ScreenUpdating = Невірний
Помилка GoTo Ctn
Для кожної xRgArea в xRgs.Areas
Debug.Print xRgArea.Address
Для кожного xRg в xRgArea.Columns
Для кожної xCell в xRg.Rows
Якщо xCell.Value = "" Тоді
xCell.EntireRow.Hidden = True
Перейти до Ctn
ElseIf Not xCell.EntireRow.Hidden Тоді
xCell.EntireRow.Hidden = False
End If
Ctn:
Далі
Далі
Далі
Application.ScreenUpdating = True
End Sub

Ви можете змінити посилання на клітинки відповідно до ваших потреб.
Будь ласка, спробуйте!
Цей коментар був мінімізований модератором на сайті
بسم الله وجزاكم الله خيرا هذا الكود رائع ولكن حين قمت بتطبيق كود حذف الصف يبطأ الشيت بطريقة طويلة جدا فما العمل?
Цей коментар був мінімізований модератором на сайті
Я хочу знати, чи спрацює код, якщо клітинка порожня в результаті формули?
Цей коментар був мінімізований модератором на сайті
Привіт, ACHINTA!
Наведений вище код VBA також застосовується до порожніх клітинок у результаті формули, ви можете спробувати, дякую!
Цей коментар був мінімізований модератором на сайті
Формула працює, щоб приховати клітинки на основі інформації на початку, але не відкриває клітинки повторно, якщо їх вміст змінюється. Я хочу, щоб він відкривав будь-які нові клітинки, які були заповнені інформацією (що відбувається за допомогою пошуку в клітинках). Як мені це зробити?
Цей коментар був мінімізований модератором на сайті
Bom dia, esta é minha necessidade também.

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 automatica.

Спасибо.
Цей коментар був мінімізований модератором на сайті
Я хочу, щоб щось подібне до цього працювало на активному аркуші:

Якщо клітинки D2:D55 = ""
Потім Hide.EntireRow

Якщо клітинки D2:D55 = "має будь-яке значення"
Потім Show.EntireRow

Як?
Цей коментар був мінімізований модератором на сайті
Привіт, Кача, вам просто потрібно змінити посилання на клітинку в коді на ваш власний діапазон клітинок, як показано нижче: Приватний допоміжний робочий лист_Change(ByVal Target As Range)
'Оновлення Extendoffice
Dim xRg As Range
Application.ScreenUpdating = Невірний
Для кожного xRg в діапазоні ("D2:D55")
Якщо xRg.Value = "" Тоді
xRg.EntireRow.Hidden = True

Ще
xRg.EntireRow.Hidden = False
End If
Наступний xRg
Application.ScreenUpdating = True
End SubПісля вставки коду не забудьте двічі клацнути будь-яку клітинку та натиснути клавішу Enter, щоб код набрав чинності.
Цей коментар був мінімізований модератором на сайті
Який найпростіший спосіб скасувати автоматичне приховування?
Цей коментар був мінімізований модератором на сайті
Привіт, mình có dùng 2 code trong 1 файл excel (1 код 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. Khi mình ấn in từng bản thì ok nhưng nếu в 1 loạt thì код Приховати không có tác dụng, bạn xem giúp mình với!

Під PRINT_PRINT()
Dim rng As Range, x As Range
Встановити rng = діапазон ("a16:a23")
Application.ScreenUpdating = Невірний
Для кожного х В кіль
Якщо Len(x.Text) = 0, то
x.EntireRow.Hidden = True
Ще
x.EntireRow.Hidden = False
End If
Далі х
Application.ScreenUpdating = True


Dim p1, p2, i&
p1 = Аркуш1.Діапазон("O1").Значення
p2 = Аркуш1.Діапазон("O2").Значення
Якщо IsNumeric(p1) = False або IsNumeric(p2) = False, то
tb = MsgBox("Так код phai la so.", , "Thông báo")
Exit Sub
End If
Якщо p1 > p2 Тоді
tb = MsgBox("So code sau phai >= so code truoc.", , "Thông báo")
Exit Sub
End If
Якщо p1 < 1 Або p2 < 1 Тоді
tb = MsgBox("Отже код phai >= 1.", , "Thông báo")
Exit Sub
End If
Якщо p1 <= p2 Тоді
Для i = p1 до p2
Лист1.Діапазон("M2").Значення = i
Лист 1. Роздрук
Далі
End If
End Sub
Цей коментар був мінімізований модератором на сайті
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, pero no se en que fallo:
Sub OcultarColumnaSin1()
Application.ScreenUpdating = Невірний
Для кожного ранго в стовпцях
Якщо rango = "" Тоді
rango.EntireColumn.Hidden = Правда
Ще
rango.EntireColumn.Hidden = False
End If
Наступний ранго
Application.ScreenUpdating = True
End Sub
Цей коментар був мінімізований модератором на сайті
Це чудово працює для мене, воно приховує рядки та відкриває їх, коли мої значення змінюються на основі формул. У мене питання: мій аркуш має 104 рядки. Він трохи збивається щоразу, коли я клацаю клітинку. Чи є спосіб прискорити перехід, коли він активований? Або це мій комп'ютер? Дякую!
Цей коментар був мінімізований модератором на сайті
Я хотів би автоматично приховати рядки, якщо стовпець E порожній або 0
Цей коментар був мінімізований модератором на сайті
Якщо значення в стовпці E порожнє або 0, я хочу, щоб рядок автоматично приховувався. Якщо значення в E змінюється на щось інше, ніж пусте або 0, я хочу, щоб воно відображалося. Звіт 1500 рядків
Цей коментар був мінімізований модератором на сайті
Привіт, Кеті,
Щоб автоматично приховати рядки на основі порожніх клітинок або 0 значень, скористайтеся наведеним нижче кодом vba:
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


Будь ласка, спробуйте, сподіваюся, це допоможе вам!
Цей коментар був мінімізований модератором на сайті
Як приховати рядок, який містить прапорець?
Цей коментар був мінімізований модератором на сайті
Привіт, Світа

Щоб приховати рядки з прапорцем, наведена нижче стаття може допомогти вам:
Як приховати прапорець, коли рядок приховано в Excel?

Будь ласка, спробуйте, якщо у вас все ще є якісь запитання, будь ласка, прокоментуйте тут.
Цей коментар був мінімізований модератором на сайті
Під час виконання коду в офісі 2013/2019/2021 він працює, але займає надто багато часу для завершення (лише 95 рядків для приховання).
Як ви можете це прискорити?
Спасибо!
Цей коментар був мінімізований модератором на сайті
Привіт, Асафе,
Код добре працює в моєму файлі Excel. Чи не могли б ви завантажити сюди свою робочу книгу з вкладеннями, якщо не заперечуєте? Щоб ми могли допомогти перевірити проблему.

Дякую!
Цей коментар був мінімізований модератором на сайті
apakah ada rumus lain?, saya berharap baris kosong itu akan terhapus saat mencetak file menjadi PDF tapi tampilan di excelnya tetap
Цей коментар був мінімізований модератором на сайті
Привіт, Нурджана
Щоб вирішити вашу проблему, спочатку вам слід приховати порожні рядки, а потім надрукувати дані. Після друку даних вам потрібно знову відобразити порожні рядки. Будь ласка, зробіть так:
1. Застосуйте цю формулу: =COUNTA(A2:E2) поруч із своїми даними, див. знімок екрана:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-1.png
2. Потім відфільтруйте новий допоміжний порожній стовпець, сховайте всі 0 рядків зі значеннями, перегляньте знімок екрана:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-2.png
3. Потім ви повинні приховати новий порожній стовпець і надрукувати дані, після друку робочого аркуша скасуйте фільтр, щоб відобразити порожні рядки, як вам потрібно.
Будь ласка, спробуйте, сподіваюся, це допоможе вам!
Цей коментар був мінімізований модератором на сайті
Привіт, у мене проблеми з "автоматизацією" макросу. Я шукаю спосіб, щоб код працював як автоматизований процес без потреби «вручну» запускати макрос. Я використовував власний варіант вашого коду, оскільки знайшов проблеми з використанням вашого коду. Це мій варіант:

Sub HideRows()
Dim xRg As Range
Application.ScreenUpdating = Невірний
Для кожного xRg у діапазоні ("A3:A800")
Якщо (xRg.Value = "") Тоді
xRg.EntireRow.Hidden = True
Ще
xRg.EntireRow.Hidden = False
End If
Наступний xRg
Application.ScreenUpdating = True
End Sub

Я намагаюся створити електронну таблицю, яка потребує постійно змінних значень, тому потрібен справжній «автоматизований» процес. Я відносно новачок у VBA, і якщо ваш код справді вже відповідає моїм вимогам, чи не могли б ви допомогти/навчити мене застосовувати його у VBA? Дякую.
Цей коментар був мінімізований модератором на сайті
Привіт, Віан
Фактично, код у нашій статті можна запускати автоматично.
Ви повинні скопіювати та вставити код у модуль коду поточного аркуша, потім повернутися до аркуша, двічі клацнути будь-яку клітинку та натиснути кнопку вводити рядок, що містить порожню клітинку, буде безпосередньо приховано.

Будь ласка, крок за кроком дотримуйтесь методу, описаного в цій статті, сподіваюся, він допоможе вам!
Дякую!
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL