Найти макрос, который влияет на конкретную ячейку - PullRequest
0 голосов
/ 08 октября 2018

Я был бы рад получить помощь от экспертов:

Как мне найти все команды, модели и формы, которые влияют на конкретную ячейку?

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

Я был бы рад получить информацию / указания / концепции.

Если это не достаточно ясно, пожалуйста, напишитедля меня.

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Если вы хотите захватить макрос, который изменил значения, попробуйте следующий код:

Public macroName As String

Sub SomeMacro()
    'store the name in global variable
    macroName = "SomeMacro"
    Cells(1, 1).Value = "new value!"
End Sub

Sub AnotherMacro()
    'store the name in global variable
    macroName = "AnotherMacro"
    Cells(1, 1).Value = "other new value!"
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    ' here you check what cell was modified,
    ' if it's not the one interesting us, exit sub
    If Target.Address <> "$A$1" Then Exit Sub

    MsgBox "Cell A1 modified by " & macroName
End Sub

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

0 голосов
/ 08 октября 2018

Проблема в том, что не существует общего способа найти все вещи, которые автоматически влияют на конкретную ячейку.

Если для проверки имеются только ячейки вида, вы можете использовать событие Worksheet.Change с командой Stop в целевой ячейке.

Пример:
Останавливается, когда значение диапазона A2 изменяется макросом или взаимодействием с пользователем

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then Stop
End Sub

Затем вы можете запустить макрос, чтобы проверить, взаимодействует ли он с этой ячейкой.,Это остановится на мероприятии.Затем вы можете использовать F8, чтобы идти шаг за шагом и выяснить, какой код вызвал событие изменения.Но это только вызовет изменения значения, но не изменения формата и т. Д.

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