Разное - Макрос в Excel

Ответить
Аватара пользователя
nipopadyuk

Разное - Макрос в Excel

Сообщение nipopadyuk »

Задача, при заполнении ячейки E[n] в ячейке J[n] прописывать текущую дату, а при заполнении ячейки I[n] прописывать текущую дату в ячейке K[n]

написал на скорую руку такой макрос, но он работает не корректно, при заполнении ячейки E[n] или J[n] дата вставляется и в I[n] и в K[n]

Помогите разобраться, что не так со скриптом...





Код:

Код: Выделить всё

Private Sub Worksheet_Change(ByVal Target As Range)
    For Each cell In Target  
        If Not Intersect(cell, Range("E3:E65536")) Is Nothing Then
            If Range("J" & cell.Row).Value = "" Then
                With Range("J" & cell.Row)
                    .Value = Now
                End With
            Else
            End If
        End If
    Next cell
    For Each cell In Target  
        If Not Intersect(cell, Range("I3:J65536")) Is Nothing Then
            If Range("K" & cell.Row).Value = "" Then
                With Range("K" & cell.Row)
                    .Value = Now
                End With
            Else
            End If
        End If
    Next cell
End Sub
Аватара пользователя
a_axe

Re: Разное - Макрос в Excel

Сообщение a_axe »

Цитата nipopadyuk:



что не так со скриптом
Разное - Макрос в Excel




nipopadyuk, не касаясь вопросов оптимизации кода - должно быть "I", а не "J"

Код:

Код: Выделить всё

If Not Intersect(cell, Range("I3:J65536")) Is Nothing Then

Updated:

В коде Вы дважды перебираете ячейки, значения которых единовременно изменились. Логично было бы делать все за один цикл, например так:



код

[spoiler]Код:
[/spoiler]

Код: Выделить всё

Private Sub Worksheet_Change(ByVal Target As Range)
    For Each cell In Target
        If cell.Row > 2 And cell.Row 
Аватара пользователя
nipopadyuk

Re: Разное - Макрос в Excel

Сообщение nipopadyuk »

Цитата a_axe:



nipopadyuk, не касаясь вопросов оптимизации кода - должно быть "I", а не "J"
Разное - Макрос в Excel




Спасибо, решено Изображение
Ответить

Вернуться в «Microsoft Office (Word, Excel, Outlook и т.д.)»