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

Как синхронизировать раскрывающиеся списки на нескольких листах в Excel?

Author: Siluvia Last Modified: 2025-08-07

Предположим, у вас есть раскрывающиеся списки на нескольких листах в книге, которые содержат точно такие же элементы. Теперь вы хотите синхронизировать раскрывающиеся списки между листами так, чтобы при выборе элемента из раскрывающегося списка на одном листе, списки на других листах автоматически обновлялись до того же значения. В этой статье представлен код VBA, который поможет вам решить эту задачу.

Синхронизация раскрывающихся списков на нескольких листах с помощью кода VBA


Синхронизация раскрывающихся списков на нескольких листах с помощью кода VBA

Например, раскрывающиеся списки находятся на пяти листах с именами Лист1, Лист2, ..., Лист5. Чтобы синхронизировать раскрывающиеся списки на остальных листах согласно выбору в Лист1, примените следующий код VBA.

1. Откройте Лист1, щелкните правой кнопкой мыши по ярлыку листа и выберите Просмотр кода в контекстном меню.

A screenshot showing the right-click menu on Sheet1 to view the code in Excel

2. В окне Microsoft Visual Basic for Applications вставьте следующий код VBA в окно Лист1 (Код).

A screenshot showing the Microsoft Visual Basic for Applications window where the VBA code is pasted in Excel

Код VBA: Синхронизация раскрывающегося списка на нескольких листах

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220815
    Dim tSheet1 As Worksheet
    Dim tRange As Range
    Dim xRangeStr As String
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    
    xRangeStr = "A2:A11"

    Set tRange = Intersect(Target, Range(xRangeStr))
    If Not tRange Is Nothing Then
        xRangeStr = tRange.Address
        Application.EnableEvents = False
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet2")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet3")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet4")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet5")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Application.EnableEvents = True
    End If
    
End Sub

Примечания:

1) В коде A2:A11 — это диапазон, содержащий раскрывающийся список. Убедитесь, что все раскрывающиеся списки находятся в том же диапазоне на разных листах.
2) Лист2, Лист3, Лист4 и Лист5 — это листы, содержащие раскрывающиеся списки, которые вы хотите синхронизировать на основе раскрывающегося списка в Лист1;
3) Чтобы добавить больше листов в код, добавьте следующие две строки перед строкой «Application.EnableEvents = True», затем измените имя листа «Лист5» на желаемое.
Set tSheet1 = ActiveWorkbook.Worksheets("Лист5")
tSheet1.Range(xRangeStr).Value = Target.Value

3. Нажмите клавиши Alt + Q, чтобы закрыть окно Microsoft Visual Basic for Applications.

Теперь, когда вы выбираете элемент из раскрывающегося списка на Лист1, раскрывающиеся списки на указанных листах будут автоматически синхронизированы для отображения того же выбора. Смотрите демонстрацию ниже.

A GIF showing how the drop-down lists synchronize across worksheets when an item is selected in Excel


Демо: Синхронизация раскрывающихся списков на нескольких листах в Excel

 

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

🤖 Kutools AI Aide: Переворот в анализе данных на основе: Интеллектуальное выполнение   |  Сгенерировать код  |  Создать Пользовательские Формулы  |  Анализ данных и генерация диаграмм  |  Вызов Kutools Functions
Популярные функции: Найти, выделить или отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячейки без потери данных   |   Округлить...
Супер ПОИСК: VLookup с несколькими критериями    VLookup с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–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% и сократите сотни кликов мышью ежедневно!