在Excel中关闭基于工作表更改的事件宏

时间:2014-08-21 15:19:59

标签: excel vba excel-vba

我已经坚持了一段时间。我有一个宏,每次进行更改时都会运行,并创建一个数据表,在每次更改后使用以下信息进行更新:旧值,新值,数据更改等。

当我不想让它再次运行时,我试图暂停工作表更改宏。例如:如果我插入空白信息,我不需要记录它曾经是空白的事实,现在它有数据等。

如果我删除了整行,我做了一些规范,如下所示:

If Target.Address = Target.EntireRow.Address Then Exit Sub

但这仅涉及一个案例。我刚才想到了一个非常简单的解决方案,我将作为答案发布,所以我希望这会帮助其他人,就像它帮助我一样

1 个答案:

答案 0 :(得分:0)

它实际上是一个非常简单的解决方案。

开始选择一个没有信息但可以清楚找到的单元格。出于此目的,我们可以说A1。

现在选择您将用于打开和关闭宏的关键词。例如:我只选择了True和False(首都需要保持一致,所以选择你想要的东西)

此时,转到工作表更改宏的开头,并在子启动后输入此内容:

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("A1").Value = "False" Then
    Exit Sub
End If

现在,在宏开始之前,它将始终验证单元格是否包含False,因此如果您想要它,请将其他任何内容放入False,如果您想要它,请将单元格保持为False 。希望这有助于某人。