Всем привет! Во вложении документ Когда запускаю ss, то проставляется время во всех ячейках, а пробую, чтобы время проставилось только напротив измененных ячеек.
Сломал голову опять) Как всегда торможу.
Подскажите, пожалуйста, есть ли какие--то варианты "локальной" простановки...
Всем привет! Во вложении документ Когда запускаю ss, то проставляется время во всех ячейках, а пробую, чтобы время проставилось только напротив измененных ячеек.
Сломал голову опять) Как всегда торможу.
Подскажите, пожалуйста, есть ли какие--то варианты "локальной" простановки...ant6729
Sheets("Лист2").Select lr = Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row lr2 = Sheets("Лист2").Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lr2 On Error Resume Next V = Sheets("Лист2").Cells(i, 1).Value m = Application.WorksheetFunction.VLookup(V, Sheets("Лист1").Range("A1:B" & lr2), 2, False)
If Not IsEmpty(m) Then Cells(i, 2).Value = Cells(i, 2).Value - m
Next i
End Sub
[/vba] и еще вариант до кучи [vba]
Код
Sub ss() Dim i&, m As Variant With Sheets("Лист2") For Each v In .[A1].CurrentRegion.Columns(1).Value i = i + 1 m = Application.VLookup(v, Sheets("Лист1").[A1].CurrentRegion, 2, False) With .Cells(i, 2) If Not IsEmpty(m) Then .Value = .Value - m End With Next End With End Sub
[/vba]
Как-то так
Нужно условие добавить [vba]
Код
Sub ss()
Sheets("Лист2").Select lr = Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row lr2 = Sheets("Лист2").Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lr2 On Error Resume Next V = Sheets("Лист2").Cells(i, 1).Value m = Application.WorksheetFunction.VLookup(V, Sheets("Лист1").Range("A1:B" & lr2), 2, False)
If Not IsEmpty(m) Then Cells(i, 2).Value = Cells(i, 2).Value - m
Next i
End Sub
[/vba] и еще вариант до кучи [vba]
Код
Sub ss() Dim i&, m As Variant With Sheets("Лист2") For Each v In .[A1].CurrentRegion.Columns(1).Value i = i + 1 m = Application.VLookup(v, Sheets("Лист1").[A1].CurrentRegion, 2, False) With .Cells(i, 2) If Not IsEmpty(m) Then .Value = .Value - m End With Next End With End Sub