VBA Excel симулирует изменения трека с помощью таблиц - PullRequest
0 голосов
/ 08 июня 2018

Буду очень признателен за вашу помощь в следующем.У меня есть рабочий файл Excel с несколькими таблицами на нескольких листах, и у меня есть макрос, который копирует все таблицы в виде файла слов после завершения работы в Excel.Затем необходимо просмотреть файл слова и отследить изменения, чтобы люди могли видеть, как это было до и после проверки.На данный момент моя идея заключается в следующем: вместо отслеживания изменений в файле слова И также изменения файла Excel с новыми поправками, я хотел бы напрямую нажать кнопку, активировать макрос, который позволяет пользователю автоматически писать красным цветом.ТОЛЬКО новые вещи, которые он добавляет, теперь в Excel, а затем используют макрос, который мне уже был нужен, чтобы сгенерировать новый файл слов, чтобы новый файл слов имел красный цвет, чтобы все изменилось, и он выглядел как отслеживание изменений (за исключением удаленных словчто бы не появилось, но это нормально).Это позволило бы пользователям не вносить дважды одинаковые изменения (один раз в слове и один раз в Excel), так как оба файла должны быть обновлены в конце.Сможете ли вы помочь мне в этом макросе писать новыми красными ТОЛЬКО после нажатия кнопки?Я уже пробовал использовать Worksheet_changes (цель byVal в качестве диапазона), но он всегда активен и не выполняет точно то, что я ищу (и я не могу использовать отслеживание изменений в Excel, так как в файле есть таблицы, а кнопка неактивна)

Заранее большое спасибо !!

1 Ответ

0 голосов
/ 09 июня 2018

спасибо за ответ.Это то, что я сейчас использую:

Option Explicit
Public oldValue As Variant

Public Sub Worksheet_SelectionChange(ByVal Target As Range)

    oldValue = Target.Value

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim oldColor

    If Not Intersect(Target, Range("A1:A100")) Is Nothing Then
        If Target.Value <> oldValue Then
            oldColor = Target.Font.ColorIndex
            Target.Characters(Len(oldValue) + 1, Len(Target) - Len(oldValue)).Font.ColorIndex = IIf(oldColor = 3, 5, 3)
        End If
    End If

End Sub

Тем не менее, он всегда активен (и я хочу активировать его только после нажатия кнопки), а также когда я что-то меняю в середине слова,изменяет цвет шрифта только на самые правые буквы одного и того же слова, так как он только замечает, сколько букв изменилось, но не что и где.

К сожалению, я не могу полностью вырезать Excel (и Word), поскольку файл ExcelОсновной официальный файл и каждое изменение будет сначала сделано в слове, а затем должно быть также сообщено в соответствующем файле Excel.Вам следует рассматривать файл слова как «файл презентации» (более удобный), а файл Excel - как фактический официальный файл, который также будет храниться для дальнейшего использования (поэтому он всегда должен обновляться).

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