工作表上的工作簿宏

时间:2016-06-12 13:20:39

标签: excel vba excel-vba

我有以下代码

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上并在每张工作表上执行吗?

1 个答案:

答案 0 :(得分:4)

事件侦听器sub在ThisWorkbook模块中的名称不同。

在ThisWorkbook模块中将代码正文移动到此事件侦听器中:

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

它会起作用。

欢呼声〜

您可以使用下拉菜单

查看可用的事件监听器

enter image description here

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

HTH。