Я хочу отфильтровать лист, чтобы отображались только строки с ячейками, отмеченными для проверки функцией отслеживания изменений. Кто-нибудь знает, возможно ли это?
решение1
Ниже написан код, который выделит каждое изменение и новую запись в активном листе и создаст журнал, содержащий имя листа, адрес ячейки и введенные данные.
Это как аудиторский лист.
Выделение новых записей работает так же Mark Track Changes
, как и перемещение данных в файл журнала.Filter those entries
Вы также можете изменить этот код для дальнейших нужд.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet, ws2 As Worksheet
Dim i As Boolean
Application.ScreenUpdating = False
i = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "Change Log" Then
i = True
Exit For
End If
Next ws
If Not i Then
Set ws2 = ThisWorkbook.Worksheets.Add
ws2.Name = "Change Log"
ws2.Range("A1") = "Sheet"
ws2.Range("B1") = "Range"
ws2.Range("C1") = "New Data"
Else
Set ws2 = Sheets("Change Log")
End If
ws2.Range("A1").Offset(ws2.UsedRange.Rows.Count, 0) = Target.Worksheet.Name
ws2.Range("B1").Offset(ws2.UsedRange.Rows.Count - 1, 0) = Target.Address
ws2.Range("C1").Offset(ws2.UsedRange.Rows.Count - 1, 0) = Target.Cells.Value
Target.Font.Color = 255
Application.ScreenUpdating = True
End Sub