У меня есть пакет служб SSIS, который запускается каждую ночь, и он создает файл Excel для моих пользователей. Один пользователь попросил меня включить событие Worksheet.Change в одну из вкладок рабочего листа, чтобы он мог отслеживать любые изменения, которые он вносит.
Как отключить событие Worksheet.Change во время ночного производства Excelфайл, а затем повторно включить его для моего пользователя?
Я попытался добавить следующую строку в событие Worksheet.Change:
If Range("B6").Value = "X" Then Exit Sub
Мой пользователь затем запускает макрос, нажимая кнопку в файле Excel, которая удаляет «X» в B6, который затем начал бы выделять ячейки, которые он меняет.
Это событие изменения, которое я добавил на вкладку листа
Public Sub Worksheet_Change(ByVal Target As Range)
If Range("B6").Value = "X" Then Exit Sub
Target.Interior.ColorIndex = 27
End Sub
Это часть макроса VBA, который запускается, когда мой пользователь нажимает кнопку макроса в Excel.
Sub clearCell()
'Activates Sub Worksheet_Change in the Data tab by removing the X in B6
'declare object variable to hold reference to cells to clear
Dim myRange As Range
'identify cells to clear
Set myRange = ThisWorkbook.Worksheets("Data").Range("B6")
'clear cells (including formatting)
myRange.Clear
End Sub
По какой-то причине мой VBA не работает. Я попытался внести изменения на вкладке листа, и ничего не выделяется, как это должно быть. Я ожидал бы, что, поскольку «X» очищен от B6, любые изменения на рабочем листе будут выделены.