VBA - вызывать функцию в следующей ячейке, когда выбран указанный диапазон - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть диапазон пустых ячеек, например: от A1 до A5

Я хотел бы иметь частную подпрограмму для вызова функции от B1 до B5 всякий раз, когда ячейка от A1 до A5 заполнена.

Есть идеи?

Ответы [ 2 ]

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

В модуле рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Application.CountA([A1:A5]) = 5 Then
        '// Your code here
    End If
End Sub
0 голосов
/ 05 декабря 2018

Таким образом, вы собираетесь использовать Событие изменения рабочего листа + IsEmpty метод, чтобы помочь вам определить "всякий раз, когда ячейка А1-А5 заполнена".Для программирования с событием рабочего листа, вы должны поместить свой код в соответствующий объект рабочего листа, а не в обычный объект модуля.Ниже код должен начинаться с

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A1:A5")) Is Nothing Then
        For Each cell In Me.Range("A1:A5")
            If IsEmpty(cell.Value) Then
                Exit Sub
            End If
        Next cell

        'Call YourOwnFunction(......) From Here...
    End If

End Sub

, если вы хотите заполнить любую ячейку вместо всех заполненных:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A1:A5")) Is Nothing Then
        For Each cell In Me.Range("A1:A5")
            If Not IsEmpty(cell.Value) Then
                'Call YourOwnFunction(......) From Here...
                 Exit Sub
            End If
        Next cell      
    End If      
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...