У меня есть макрос, который создает журнал, в листе журнала каждый раз, когда ячейка изменяется на определенном листе.
Этот макрос работает очень хорошо, но, к сожалению, слишком хорошо !! Потому что каждый раз, когда я удаляю строку или столбец, он записывает каждую ячейку в этой строке или столбце, которая была удалена !! (Это много ячеек! Так что таблица просто падает)
Есть ли способ сделать в моем макросе только запись о том, что строка была удалена (а не каждая ячейка в этой строке? Если нет ... могу ли я просто заставить ее игнорировать создание файла журнала, если строка или столбец удален
Или я могу ограничить код конкретным диапазоном. Например. Если я удаляю строку, это только регистрирует, что ячейки A13: BC13 были удалены
Мой код, который я использовал до сих пор, выглядит следующим образом:
Const intUsernameColumn = 1
Const intCellRefColumn = 2
Const intNewValueColumn = 3
Const intTimestampColumn = 4
Private Sub Worksheet_Change(ByVal Target As Range)
Dim shtLog As Worksheet
Dim cll As Variant
Dim lngNextRow As Long
Set shtLog = ThisWorkbook.Sheets("Log")
For Each cll In Target.Cells
lngNextRow = shtLog.Cells.Find(What:="*", After:=[A1], Searchorder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1
shtLog.Cells(lngNextRow, intUsernameColumn).Value = Environ("username")
shtLog.Cells(lngNextRow, intCellRefColumn).Value = cll.Address
shtLog.Cells(lngNextRow, intNewValueColumn).Value = cll.Value
shtLog.Cells(lngNextRow, intTimestampColumn).Value = Format(Now, "dd-mmm-yy hh:mm:ss")
Next cll
End Sub
Я все еще новичок в этом, поэтому любая помощь будет оценена
Спасибо !!