Я хотел бы, чтобы ячейки F4-F23 автоматически заполняли сегодняшнюю дату всякий раз, когда данные вводятся в ячейки E4-E23. Затем мне нужно, чтобы ячейки I4-I23 автоматически заполнялись сегодняшней датой при вводе данных в ячейки H4-H23. Данные, введенные в ячейки H4-H23, будут вводиться в разные дни, после чего данные вводятся в ячейки E4-E23. Я нашел этот код, который работает для первой части моего вопроса, мне нужно знать, как изменить его для работы с ячейками H и I.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim E As Range, F As Range, Inte As Range, r As Range
    Set E = Range("E:E")
    Set Inte = Intersect(E, Target)
    If Inte Is Nothing Then Exit Sub
    Application.EnableEvents = False
        For Each r In Inte
            r.Offset(0, 1).Value = Date
        Next r
    Application.EnableEvents = True
End Sub

1 ответ1

1

Попробуй это:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim E As Range, H As Range, Inte As Range, r As Range
    Set E = Range("E:E")
    Set H = Range("H:H")
    Set Inte = Intersect(E, Target)
    If Not Inte Is Nothing Then
        Application.EnableEvents = False
        For Each r In Inte
            r.Offset(0, 1).Value = Date
        Next r
        Application.EnableEvents = True
    End If
    Set Inte = Intersect(H, Target)
    If Not Inte Is Nothing Then
        Application.EnableEvents = False
        For Each r In Inte
            r.Offset(0, 1).Value = Date
        Next r
        Application.EnableEvents = True
    End If
End Sub

Вместо выхода из подпрограммы, когда пересечение - ничто, проверьте на противоположность ничто и запустите код на каждом пересечении отдельно.

Обратите внимание, я объявил H как диапазон и удалил неиспользованное объявление F как диапазон.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .