Vba 工作表上的工作簿宏

Vba 工作表上的工作簿宏,vba,excel,Vba,Excel,我有以下代码 Private Sub Worksheet_Change(ByVal Target As Range) If InRange(ActiveSheet.ActiveCell, Range("M4:M1048576")) Then MsgBox "ESTA EN EL RANGO DE M" If (Not IsEmpty(ActiveCell.Offset(0, -1))) And (ActiveCell.Offset(0, -1).Value

我有以下代码

Private Sub Worksheet_Change(ByVal Target As Range)
    If InRange(ActiveSheet.ActiveCell, Range("M4:M1048576")) Then
        MsgBox "ESTA EN EL RANGO DE M"
        If (Not IsEmpty(ActiveCell.Offset(0, -1))) And (ActiveCell.Offset(0, -1).Value > 0) Then
            Application.EnableEvents = False
            If InStr(1, ActiveCell.Text, "EFECTIVO") > 0 Then
                Call RestaEfectivo
            ElseIf InStr(1, ActiveCell.Text, "BAC Débito") > 0 Then
                Call RestaBAC
            ElseIf InStr(1, ActiveCell.Text, "CITI Débito") > 0 Then
                Call RestaCITI
            ElseIf InStr(1, ActiveCell.Text, "BAC Crédito") > 0 Then
                Call IncrementarCredito
            End If
            Application.EnableEvents = True
        End If
    End If
End Sub
它被设置为特定的工作表。然而,我决定把它从工作表中取出,放在这个工作簿上。我对VBA非常陌生,所以我不知道我需要在代码中更改什么,所以它会在每个工作表上执行,现在,代码根本不会执行


有人能告诉我需要在代码中更改什么,以便它保留在此工作簿中,并在每个工作表上执行吗?

此工作簿模块中的事件侦听器子模块的名称不同

只需将代码主体移动到此工作簿模块中的事件侦听器中:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    'Place the code here
End Sub
它会起作用的

干杯~

您可以使用下拉菜单查看可用的事件侦听器

选择一个,VBA将自动为您创建子对象


HTH.

此工作簿模块中的事件侦听器子模块名称不同

只需将代码主体移动到此工作簿模块中的事件侦听器中:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    'Place the code here
End Sub
它会起作用的

干杯~

您可以使用下拉菜单查看可用的事件侦听器

选择一个,VBA将自动为您创建子对象