Макрос Excel VBA для отслеживания изменений на отдельном листе - PullRequest
2 голосов
/ 06 апреля 2009

Я пытаюсь написать макрос VBA для отслеживания изменений в книге на отдельном листе.

Если вы сделаете это вручную, последовательность команд будет Инструменты> Отслеживать изменения> Выделить изменения, выбрав опцию Отдельная рабочая таблица. Вам нужно выполнить две итерации команды, одну для активации встроенного отслеживания, а вторую, чтобы переместить отслеживание на отдельный лист.

Используя макрос-рекордер, я получил этот кусок кода:

With ActiveWorkbook
    .Save
    .KeepChangeHistory = True
    .HighlightChangesOptions When:=xlAllChanges
    .ListChangesOnNewSheet = True
    .HighlightChangesOnScreen = False
    .Worksheets("History").Select
End With

Когда я запускаю это, я получаю ошибку Сбой метода HighlightChangesOptions . Есть предложения?

1 Ответ

2 голосов
/ 06 апреля 2009

Метод HighlightChangesOptions будет работать только в том случае, если рабочая книга уже опубликована. В пользовательском интерфейсе включение HighlightChange автоматически поделится рабочей книгой, но не в VBA.

Application.DisplayAlerts = False
With ActiveWorkbook
    .SaveAs , , , , , , xlShared
    .KeepChangeHistory = True
    .HighlightChangesOptions When:=xlAllChanges
    .ListChangesOnNewSheet = True
    .HighlightChangesOnScreen = False
    .Worksheets("History").Select
End With

Вызов DisplayAlerts не позволит Excel предупредить вас о том, что вы перезаписываете существующую книгу - саму себя. Вы можете прокомментировать эту строку, просто чтобы посмотреть, что происходит.

Обратите внимание, что этот код не может находиться в общей книге. Как только вы поделитесь рабочей книгой, код перестает выполняться и выдает ошибки. Он должен находиться в другой книге или надстройке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...