Несколько событий изменения рабочего листа: несколько раскрывающихся списков - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь создать рабочую книгу, в которой, если я изменю раскрывающийся список на 1 листе, он автоматически обновляет этот же раскрывающийся список на втором листе.Эти раскрывающиеся списки будут представлять разные сценарии, и моя цель при создании этого - дать конечному пользователю возможность изменять раскрывающийся список сценариев с любого листа, а не с одного.

Я использовал эту ссылку для создания VBA дляизменение 1 раскрывающегося списка - Исходный код VBA со ссылкой - и он работал правильно ( См. пример рабочей книги для загрузки ).Однако теперь я хочу добавить другие 2 раскрывающихся списка, чтобы при внесении в них каких-либо изменений они обновлялись соответствующим образом.

Я также открыт для других решений, если вы знаете что-то лучшее.

1 Ответ

0 голосов
/ 20 декабря 2018

Извините, если этот вопрос был элементарным - я новичок в VBA.

Используя пример из Исходный код VBA со ссылкой , если вы пытались применить это правило к 2 наборамвыпадающих списков (всего 4) вместо 1 набора - вы должны продублировать фрагмент из «Если не пересекается (...» с «.. Завершить, если», а затем обновить ссылку на второй набор ячеек.

ПРИМЕР:

'*************** запускается блок кода Параметр Явный

Private Sub Worksheet_Change (ByVal Target As Range) Dim targetSheet AsРабочий лист

Если не пересекается (цель, диапазон («А1»)) - ничто, то «смотреть только ячейку А1 Установить targetSheet = ActiveWorkbook.Worksheets (« Лист2 »)» определить лист для копирования при ошибке Возобновить ДалееApplication.EnableEvents = False targetSheet.Range ("B1") = Target.Value 'копировать в ячейку B1 на целевом листе Application.EnableEvents = True End If

Если не пересекается (Target, Range ("A2"))) Ничего, тогда 'смотреть только ячейку A1 Установите targetSheet = ActiveWorkbook.Worksheets ("Sheet2") 'определяет лист для копирования в On On Resume Resume Next Application.EnableEvents = False targetSheet.Range ("B2") = Target.Value' копировать в ячейку B1 на целевом листе Application.EnableEvents = TrueEnd If End Sub

'****************** кодовый блок заканчивается

Затем вы должны повторить для другого листа.

...