Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

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

Author Xiaoyang Last modified

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

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

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


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

Чтобы скрыть определенные столбцы в реальном времени на основе значений ввода, примените следующий код VBA:

1. На листе, где вы хотите скрыть столбцы, щелкните правой кнопкой мыши вкладку листа, а затем выберите "Вид кода" из контекстного меню, см. скриншот.

A screenshot showing how to open the Visual Basic for Applications window in Excel by right-clicking the sheet tab

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" — это ячейка, куда вы вводите определенный текст. Вы должны скорректировать текст и названия столбцов в соответствии с вашими потребностями. Кроме того, вы можете добавить другие новые критерии, просто добавив следующие строки кода:
  • Case "AA": Columns("A").EntireColumn.Hidden = False
  • Columns("A").EntireColumn.Hidden = True

A screenshot of the VBA code window in Excel with code pasted to hide columns based on user input

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


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

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

1. На листе, где вы хотите скрыть столбцы, щелкните правой кнопкой мыши вкладку листа, а затем выберите "Вид кода" из контекстного меню, см. скриншот:

A screenshot showing how to open the Visual Basic for Applications window in Excel by right-clicking the sheet tab

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, будут отображаться только соответствующие столбцы, остальные будут скрыты; а если вы введете текст «Все», все столбцы появятся, как показано в демонстрации ниже:

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

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: 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.

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