Выполнять макрос автоматически при изменении связанной ячейки поля со списком - PullRequest
0 голосов
/ 30 января 2019

У меня есть серия из 2 комбо-боксов.У меня есть макрос с именем Generate, который изменит параметры во втором поле со списком в зависимости от числа, которое возвращает первое поле со списком.Однако это требует от пользователя нажатия кнопки для выполнения этого макроса.Я хотел бы, чтобы этот макрос выполнялся автоматически при изменении числа в связанной ячейке первого поля со списком.

Это код, который я пробовал ранее, однако изменение в ячейке ссылки, равное B2, не вызывает событие.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B2")) Is Nothing Then Generate
End Sub

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Самое простое решение состояло в том, чтобы дать первому комбинированному окну диапазон ввода, а также присвоить ему Generate макрос

0 голосов
/ 30 января 2019

Как упоминалось ранее, событие Worksheet_Change будет вызвано только физическим изменением ячейки, и, следовательно, ваша связанная ячейка не будет иметь никакого эффекта.

Если это ячейка в другой wb,необходимо активировать ваш Generate Sub, тогда я бы посоветовал использовать событие Worksheet_Change для указанного wb.

В моем собственном проекте у меня есть sub в regular module:

Dim AddNew As Workbook
Set AddNew = Workbooks("") 'change this
Set oWb.Workbook = AddNew

Затем в class module:

Public WithEvents m_wb As Workbook
Public Property Set Workbook(wb As Workbook)
Set m_wb = wb
End Property

Public Property Get Workbook() As Workbook
Set Workbook = m_wb
End Property

Public Sub m_wb_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'In here, you could trigger the Generate Sub if a specific cell changes
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...