У меня есть таблица отслеживания, в которой я хочу, чтобы дата заполнения ячейки автоматически заполнялась в следующем столбце. Я нашел следующий код, который работает для первого (I:I), но я хотел бы добавить тот же код к 5 другим столбцам (т.е. когда данные вводятся в K1, дата заполняется в L1, когда данные вводятся в P1 , дата заселяется в Q1).

Я никогда не использовал VBA раньше. Я попытался просто скопировать / вставить код и изменить диапазон, но я получаю ошибку неоднозначного имени. Как мне изменить имя, чтобы я мог повторно использовать код?

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A As Range, B As Range, Inte As Range, r As Range
    Set A = Range("I:I")
    Set Inte = Intersect(A, 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

2

Изменить включение нескольких столбцов довольно просто. Нужно изменить только одну строку кода:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range, B As Range, Inte As Range, r As Range
Set A = Range("I:I,K:K,P:P")
Set Inte = Intersect(A, 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

Это будет контролировать столбцы I, K и P

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