Как использовать код VBA без макро-триггера - PullRequest
0 голосов
/ 02 мая 2019

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

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D5")) Is Nothing Then
        Select Case Range("D5")
            Case "2008": Macro1
            Case "2015": Macro1
        End Select
    End If
    End Sub

Однако я хотел бы запустить следующее событие, когда другая ячейка изменяется (также выпадающий), код написан для скрытия столбцов, это фрагмент дополнительного кода:

Sub hideColumnsBasedOnConditionZero()
LastColumn = 11 'Last Column
For i = 1 To LastColumn 'Lopping through each Column
    'Hide all the columns with the values as 0 in Row 11
    If Cells(1, i) = 0 And Cells(1, i) <> "" Then Columns(i).EntireColumn.Hidden = True
Next
End Sub

Может кто-нибудь сказать, пожалуйста, как этого добиться? Второй код действителен, но я не могу активировать его, так как первый код использует функцию изменения и относится только к другой ячейке.

1 Ответ

1 голос
/ 02 мая 2019

Вы можете просто добавить его к своему первому событию

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim LastColumn As Long

    With Me
        If Not Intersect(Target, .Range("D5")) Is Nothing Then
            Select Case .Range("D5")
                Case "2008", "2015": Macro1
            End Select
        ElseIf Not Intersect(Target, .Range("Your Other Range")) Is Nothing Then
            Call hideColumnsBasedOnConditionZero
        End If
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...