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

документ автоматически скрывает строки 1

Внимание: В приведенном выше коде A1: A20 - это список данных, содержащий пустые ячейки, которые нужно скрыть автоматически.

2. Затем вернитесь на рабочий лист, и теперь, когда вы дважды щелкните любую ячейку и нажмите Enter key, строки, содержащие пустые ячейки в столбце A, были скрыты сразу, и если вы очистите любое содержимое ячеек в указанных ячейках столбца A, строки будут скрыты автоматически.

документ автоматически скрывает строки 2

 


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

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

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно

 

Сортировать комментарии по
Комментарии (32)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Привет, я использую Excel 2016, и он не работает. Я получаю сообщение об ошибке синтаксиса. вы можете помочь?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Ант,

Приведенный выше код хорошо работает в моем Excel 2016, изменили ли вы ссылку на ячейку в коде в соответствии с вашими потребностями?
Этот комментарий был сведен к минимуму модератором на сайте
Я получаю ошибку времени выполнения «13»:



Несоответствие типов



Кто может помочь???
Этот комментарий был сведен к минимуму модератором на сайте
Могу ли я остановить автоматический запуск этого макроса после нажатия клавиши ввода? Могу ли я прикрепить его к кнопке, чтобы скрывать ячейки только при нажатии?
Этот комментарий был сведен к минимуму модератором на сайте
кто-нибудь когда-нибудь понял это? Я тоже хотел бы знать.
Этот комментарий был сведен к минимуму модератором на сайте
кто-нибудь еще придумал ответ?
Этот комментарий был сведен к минимуму модератором на сайте
тот же вопрос здесь
Этот комментарий был сведен к минимуму модератором на сайте
Привет ребята,
Чтобы скрыть строки, в которых конкретный столбец содержит пустые ячейки, с помощью кнопки, сделайте следующее:
Во-первых, вы должны вставить командную кнопку со вкладки «Разработчик».
Затем примените следующий код VBA для командной кнопки (Примечание: измените ссылку на ячейку a1:a20 на свою собственную)

Private Sub CommandButton1_Click ()
Dim rng As Range, x As Range
Установить rng = диапазон («a1: a20»)
Приложение.ScreenUpdating = False
Для каждого x In кольца
Если Лен(х.Текст) = 0 Тогда
x.EntireRow.Hidden = Истина
Еще
x.EntireRow.Hidden = Ложь
End If
Следующий х
Application.ScreenUpdating = True
End Sub

Пожалуйста, попробуйте, надеюсь, это поможет вам!
Этот комментарий был сведен к минимуму модератором на сайте
как автоматически скрывать строки, если пустые ячейки в 2 разных столбцах с кодом VBA
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Салпе,
Чтобы автоматически скрыть строки, если пустые ячейки в 2 разных столбцах, примените следующий код:

Private Sub Worksheet_Change (ByVal Target As Range)
Dim xRg, xCell как диапазон
Dim xRgs, xRgArea как диапазон
Установите xRgs = Диапазон ("A1: A22, D1: D22")
Приложение.ScreenUpdating = False
При ошибке GoTo Ctn
Для каждого xRgArea в xRgs.Areas
Debug.Print xRgArea.Address
Для каждого xRg в xRgArea.Columns
Для каждой xCell в xRg.Rows
Если xCell.Value = "" Тогда
xCell.EntireRow.Hidden = Истина
Перейти к пункту
ElseIf Не xCell.EntireRow.Hidden Тогда
xCell.EntireRow.Hidden = Ложь
End If
Корр.:
Далее
Далее
Далее
Application.ScreenUpdating = True
End Sub

Вы можете изменить ссылки на ячейки по своему усмотрению.
Пожалуйста, попробуйте!
Этот комментарий был сведен к минимуму модератором на сайте
بسم الله وجزاكم الله خيرا هذا الكواكم الله خيرا هذا الكود رائع ولكن حين قمت بتطبيق كود حذف الصف يبطأ الشيت بطريقة طولة جº اo agete
Этот комментарий был сведен к минимуму модератором на сайте
Я хочу знать, будет ли код работать, если ячейка пуста в результате формулы?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, АЧИНТА,
Приведенный выше код VBA также применяется к пустым ячейкам в результате формулы, вы можете попробовать, спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Формула работает, чтобы скрыть ячейки на основе информации в начале, но не повторно показывает ячейки, если их содержимое изменяется. Я хочу, чтобы он показывал любые новые ячейки, которые были заполнены информацией (что происходит с помощью поиска ячеек). Как мне это сделать?
Этот комментарий был сведен к минимуму модератором на сайте
Bom dia, esta é minha necessidade tambem.

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

Грато.
Этот комментарий был сведен к минимуму модератором на сайте
Я хочу, чтобы что-то вроде этого работало на активном листе:

Если ячейки D2:D55 = ""
Затем Hide.EntireRow

Если ячейки D2:D55 = "имеет любое значение"
Затем Show.EntireRow

Как?
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, Кача. Вам просто нужно изменить ссылку на ячейку в коде на свой собственный диапазон ячеек, как показано ниже: Private Sub Worksheet_Change (Цель ByVal как диапазон)
'Обновить Extendoffice
Dim xRg как диапазон
Приложение.ScreenUpdating = False
Для каждого xRg в диапазоне («D2: D55»)
Если xRg.Value = "" Тогда
xRg.EntireRow.Hidden = Истина

Еще
xRg.EntireRow.Hidden = Ложь
End If
Следующий xRg
Application.ScreenUpdating = True
End SubПосле вставки кода не забудьте дважды щелкнуть любую ячейку и нажать клавишу Enter, чтобы код вступил в силу.
Этот комментарий был сведен к минимуму модератором на сайте
Каков самый простой способ отменить автоматическое скрытие?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, mình có dùng 2 code trong 1 файл excel (1 code la của bạn) với mục đích in ra những bản riêng biệt và khong bị thừa dòng trống. Khi minh ấn in từng bản thì ok nhưng nếu в 1 loạt thì code Hide không có tac dụng, bạn xem giup minh với nhé, minh cảm ơn!

Подпрограмма PRINT_PRINT()
Dim rng As Range, x As Range
Установить rng = диапазон («a16: a23»)
Приложение.ScreenUpdating = False
Для каждого x In кольца
Если Лен(х.Текст) = 0 Тогда
x.EntireRow.Hidden = Истина
Еще
x.EntireRow.Hidden = Ложь
End If
Следующий х
Application.ScreenUpdating = True


Тусклый p1, p2, i&
p1 = Sheet1.Range("O1").Value
p2 = Sheet1.Range("O2").Value
Если IsNumeric(p1) = False или IsNumeric(p2) = False Тогда
tb = MsgBox("Итак, код phai la so.", , "Thông báo")
Exit Sub
End If
Если р1 > р2 Тогда
tb = MsgBox("Так код sau phai >= так код 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
Если р1 <= р2 Тогда
Для i = p1 до p2
Лист1.Диапазон("M2").Значение = я
Лист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:
СубоккультнаяколонкаSin1()
Приложение.ScreenUpdating = False
Для каждого ранго в столбцах
Если ранго = "" Тогда
rango.EntireColumn.Hidden = Истина
Еще
rango.EntireColumn.Hidden = Ложь
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 как диапазон
Приложение.ScreenUpdating = False
Для каждого xRg в диапазоне («A3: A800»)
Если (xRg.Value = "") Тогда
xRg.EntireRow.Hidden = Истина
Еще
xRg.EntireRow.Hidden = Ложь
End If
Следующий xRg
Application.ScreenUpdating = True
End Sub

Я пытаюсь создать электронную таблицу, для которой требуются постоянно меняющиеся значения, поэтому потребуется настоящий «автоматизированный» процесс. Я относительно новичок в VBA, и если ваш код уже соответствует моим требованиям, не могли бы вы помочь/научить меня применять его в VBA? Спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Виан
На самом деле код в нашей статье может запускаться автоматически.
Вы должны скопировать и вставить код в модуль кода текущего рабочего листа, затем вернуться на рабочий лист, дважды щелкнуть любую ячейку и нажать кнопку Enter ключ, строка, содержащая пустую ячейку, будет скрыта.

Пожалуйста, следуйте методу, описанному в этой статье, шаг за шагом, надеюсь, он вам поможет!
Спасибо!
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL