Я хочу отфильтровать лист, чтобы отображались только строки с ячейками, помеченными для просмотра функцией отслеживания изменений. Кто-нибудь знает, если / как это возможно?

1 ответ1

0

Ниже приведенный код выделит каждое изменение и новую запись в Активном листе и создаст Лист регистрации, содержащий имя листа, адрес ячейки и введенные данные.

Это как лист аудита.

Выделение новых записей работает как « 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .