Версия для печати

Выделение сделанных изменений

Что умеет Excel

 

Рассмотрим такую ситуацию. Вы работаете в большой компании. Есть файл Excel, в котором работаете не только Вы, но и другие люди. Но Вы хотите узнать какие изменения внесли эти люди в Ваш файл и пометить измененные ячейки цветом(пусть будет красный). Приведенный ниже код поможет это сделать.

Option Explicit
Dim vValue
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target <> vValue Then Target.Interior.Color = vbRed
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count = 1 Then vValue = Target
End Sub
Option Explicit
Dim vValue
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target <> vValue Then Target.Interior.Color = vbRed
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count = 1 Then vValue = Target
End Sub

Вставляем код: Правый щелчок мыши по ярлычку листа(изменения в котором Вы хотите отследить)-Исходный текст-Вставляем приведенный код. Подробнее о вставке кода в модули листа см.здесь.

Но приведенный код работает только в одном листе(том, в модуле которого размещен код). Если Вы хотите отследить изменения во всех листах книги, то воспользуйтесь следующим кодом:

Option Explicit
Dim vValue
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target <> vValue Then Target.Interior.Color = vbRed
End Sub
 
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Count = 1 Then vValue = Target
End Sub
Option Explicit
Dim vValue
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target <> vValue Then Target.Interior.Color = vbRed
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Count = 1 Then vValue = Target
End Sub

Правда вставлять этот код надо уже не в модуль конкретного листа, а в модуль книги. Подробнее о модуле книги см. здесь.

Скачать пример »

  Tips_Macro_Watch_Changes.xls (30,0 KiB, 1 199 скачиваний)

Так же см.:
Ведение журнала сделанных в книге изменений



Поддержать автора сайта
Поделиться ссылкой
  1. Пока что нет комментариев.

Комментарий будет добавлен после проверки администратором.
Комментарии, не имеющие отношения к комментируемой статье, будут удаляться без уведомления и объяснения причин. Если есть вопрос по проблеме в Excel- добро пожаловаться на Форум