1

У меня есть следующий код:

Private Sub Worksheet_Change(ByVal Target As Range)
    Set KeyCells = Range("C9")
    Set isect = Application.Intersect(KeyCells, Range(Target.Address))
    If Not isect Is Nothing Then
        Application.EnableEvents = False
        isect.Value = isect.Value - 40
        Application.EnableEvents = True
    End If
End Sub

я хочу сделать его универсальным, т. е. работать на всех листах, а не на одном. Как это сделать?

1 ответ1

3

Переместите код на страницу ThisWorkbook

УВА

и измените событие на событие Workbook_SheetChange .

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Set KeyCells = Range("C9")
    Set isect = Application.Intersect(KeyCells, Range(Target.Address))
    If Not isect Is Nothing Then
        Application.EnableEvents = False
        isect.Value = isect.Value - 40
        Application.EnableEvents = True
    End If
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .