nipopadyuk |
18-11-2015 15:20 2576169 |
Макрос в Excel
Задача, при заполнении ячейки 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
|
nipopadyuk, не касаясь вопросов оптимизации кода - должно быть "I", а не "J"
Код:
If Not Intersect(cell, Range("I3:J65536")) Is Nothing Then
Updated:
В коде Вы дважды перебираете ячейки, значения которых единовременно изменились. Логично было бы делать все за один цикл, например так:
код
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target
If cell.Row > 2 And cell.Row <= 65536 And cell.Value <> "" Then
Select Case cell.Column
Case 5
If cell.Offset(0, 5).Value = "" Then cell.Offset(0, 5).Value = Now
Case 9
If cell.Offset(0, 2).Value = "" Then cell.Offset(0, 2).Value = Now
End Select
End If
Next cell
End Sub
|
nipopadyuk |
19-11-2015 08:55 2576376 |
Цитата:
Цитата a_axe
nipopadyuk, не касаясь вопросов оптимизации кода - должно быть "I", а не "J" »
|
Спасибо, решено :)
|
Время: 07:00.
© OSzone.net 2001-