KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Как скрывать столбцы в реальном времени в зависимости от ввода пользователя в Excel?

АвторСяоянДата изменения

Скрытие столбцов в Excel — задача довольно обычная, но пробовали ли вы автоматически скрывать столбцы в зависимости от введённых значений? Например: при вводе «AA» скрывается столбец A, при «BB» — столбцы B и C, при «CC» — столбцы D и E, а при «DD» — столбец F, как показано на демонстрации ниже. В этой статье вы найдёте готовый код VBA для реализации такого функционала в Excel.

Используйте код VBA для скрытия или отображения столбцов в реальном времени на основе ввода пользователя

Используйте код VBA для скрытия или отображения определённых столбцов на основе ввода пользователя


Используйте код VBA для скрытия или отображения столбцов в реальном времени на основе ввода пользователя

Чтобы скрывать Укажите столбец в реальном времени на основе введённых значений, примените приведённый ниже код VBA:

1. На листе, где нужно скрывать столбцы, щёлкните правой кнопкой мыши по ярлыку листа и выберите в контекстном меню пункт «Просмотреть код» (см. снимок экрана).

Снимок экрана, показывающий, как открыть окно Visual Basic для приложений в Excel с помощью щелчка правой кнопкой мыши по ярлыку листа

2. В открывшемся окне «Microsoft Visual Basic for Applications» скопируйте приведённый ниже код VBA и вставьте его в окно «Лист (Код)».

Код VBA: Скрытие столбцов в реальном времени на основе ввода пользователя

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby ExtendOffice
xcell = Range("K1").Value
Select Case xcell
Case "AA": Columns("A").EntireColumn.Hidden = False
Columns("A").EntireColumn.Hidden = True
Case "BB": Columns("B:C").EntireColumn.Hidden = False
Columns("B:C").EntireColumn.Hidden = True
Case "CC": Columns("D:E").EntireColumn.Hidden = False
Columns("D:E").EntireColumn.Hidden = True
Case "DD": Columns("F").EntireColumn.Hidden = False
Columns("F").EntireColumn.Hidden = True
Case Else
Columns("A:G").EntireColumn.Hidden = False
End Select
End Sub
Примечание. В приведённом выше коде «K1» — это ячейка, в которую вы вводите конкретный текст. Вам следует скорректировать текст и названия столбцов в соответствии со своими требованиями. Кроме того, вы можете добавить другие критерии, просто включив в код следующие фрагменты:
  • Случай «AA»: Columns(«A»).EntireColumn.Hidden = False
  • Columns(«A»).EntireColumn.Hidden = True

Снимок экрана окна кода VBA в Excel с вставленным кодом для скрытия столбцов на основе ввода пользователя

3. Затем закройте окно кода. Теперь, как только вы введёте «AA» в ячейку K1 и нажмёте клавишу «Enter», столбец A скроется; при вводе «BB» и нажатии «Enter» скроются столбцы B и C — и так далее. Если же вы введёте любое другое значение или очистите содержимое ячейки, скрытые столбцы тут же отобразятся (см. демонстрацию ниже).


Используйте код VBA для скрытия или отображения определённых столбцов на основе ввода пользователя

В этом примере я буду фильтровать диапазон данных по названию товара. При вводе «Hoodie» отображается только информация о худи, а остальные столбцы сразу скрываются; при вводе «All» — показываются все столбцы, как продемонстрировано ниже:

1. На листе, где нужно скрывать столбцы, щёлкните правой кнопкой мыши по ярлыку листа и выберите в контекстном меню пункт «Просмотреть код» (см. снимок экрана):

Снимок экрана, показывающий, как открыть окно Visual Basic для приложений в Excel с помощью щелчка правой кнопкой мыши по ярлыку листа

2. В открывшемся окне «Microsoft Visual Basic for Applications» скопируйте приведённый ниже код VBA и вставьте его в окно «Лист (Код)».

Код VBA: Скрытие или отображение столбцов для фильтрации данных на основе ввода пользователя

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby ExtendOffice
    Dim x As Variant, y As String
     If Target.Address = "$K$1" Then
        y = Target.Value
        With Range("B1:H1")
            Application.ScreenUpdating = False
            .EntireColumn.Hidden = (y <> "All")
            If y <> "All" Then
                For Each x In .Cells
                    If x = y Then x.EntireColumn.Hidden = False
                Next
            End If
            Application.ScreenUpdating = True
        End With
    End If
End Sub
Примечание. В приведённом выше коде «K1» — это ячейка, в которую вы вводите конкретный текст, а «B1:H1» — это заголовки строк, содержащие названия товаров, которые требуется отфильтровать.

3. Затем закройте окно кода. Теперь при введении названия товара в ячейку K1 будут отображаться только соответствующие столбцы, а остальные — автоматически скрываться; если же ввести «All», отобразятся все столбцы, как показано на демонстрации ниже:

Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек