Excel Worksheet_Change禁用自身

时间:2019-03-16 12:59:05

标签: excel vba

我有一些代码可以为工作表创建一个更改日志,并且运行良好。如果我修改并出现语法错误,则VBA会像往常一样识别该错误,并且我可以更正和重置模块,但是当我这样做时,Worksheet_Change子例程会自行禁用。我还没有找到一种重新启用代码的方法,因此我必须创建一个新的工作簿并复制/粘贴代码以继续进行。有人可以告诉我为什么会发生这种情况以及如何启用事件程序吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,这种情况一直发生。典型的事件代码如下:

class MyModel(models.Model):
    name = models.CharField()
    balance = models.IntegerField()

    @property
    def get_balance(self):
        if self.balance:
           return self.balance
        return 0.15 * 50

如果您在“执行某些操作”时遇到错误,则永远不会执行标为Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False '<==== ALPHA ' do some stuff Application.EnableEvents = True '<=====OMEGA End Sub 的行,并且永远不会重新启用事件。

我的建议是在标准模块中包含以下代码:

OMEGA

所以你:

  1. 尝试您的代码
  2. 修复错误
  3. 运行Sub Re_Enable() Application.EnableEvents = True End Sub
  4. 再次尝试输入代码