工作表上的工作簿macros

我有以下代码

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 

它被设置为一个特定的工作表。 但是,我决定从工作表中删除并放在ThisWorkbook上。 我对VBA很陌生,所以我不知道在代码中需要更改什么,所以它在每个工作表上执行,现在,代码根本不会执行。

任何人都可以告诉我什么,我需要改变我的代码,以便它保持在ThisWorkbook上,并在每个工作表上执行?

ThisWorkbook模块中的事件侦听器子项名称不同。

只需将代码的主体移到ThisWorkbook模块中的此事件监听器即可:

 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 'Place the code here End Sub 

它会工作。

欢呼声〜


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

在这里输入图像描述

select一个和VBA将自动创build你的子。

HTH。