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

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

Author: Siluvia Last Modified: 2025-06-05

Предположим, у вас есть раскрывающиеся списки на нескольких листах в книге, которые содержат точно такие же элементы. Теперь вы хотите синхронизировать раскрывающиеся списки между листами так, чтобы при выборе элемента из раскрывающегося списка на одном листе, списки на других листах автоматически обновлялись до того же значения. В этой статье представлен код 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
Популярные функции: Найти, выделить или отметить дубликаты | Удалить пустые строки | Объединить столбцы или ячейки без потери данных |   Округлить без формулы ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP с несколькими значениями | Многолистовой поиск | Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Избранные функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгами и листами | Библиотека автотекста | Выбор даты | Объединить данные | Шифрование/расшифровка ячеек | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр ячеек с жирным/курсивом/зачёркнутым...) ...
Топ-15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ практических формул (Расчет возраста на основе даты рождения, ...) |19 инструментов вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов для объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое

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


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

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