工作表上的工作簿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。