Vba 访问数据库时停止工作表更改事件触发
我有一个vba宏,它从电子表格中导入数据,并用数据库中的数据填充名为“验证”的表。我试图设置一个工作表更改事件,当工作表中的数据更改时,它将使用新值更新数据库 目前这是可行的,但我遇到的问题是,当我最初从数据库获取该工作表的数据时,工作表更改事件正在触发,这会导致错误 是否有任何方法可以停止更改,即使在填充工作表时触发,并且只有在工作表中实际手动更改了某些内容时才停止更改 对不起,如果我的解释不是很好。如果您需要更多信息,请询问。试试看Vba 访问数据库时停止工作表更改事件触发,vba,excel,Vba,Excel,我有一个vba宏,它从电子表格中导入数据,并用数据库中的数据填充名为“验证”的表。我试图设置一个工作表更改事件,当工作表中的数据更改时,它将使用新值更新数据库 目前这是可行的,但我遇到的问题是,当我最初从数据库获取该工作表的数据时,工作表更改事件正在触发,这会导致错误 是否有任何方法可以停止更改,即使在填充工作表时触发,并且只有在工作表中实际手动更改了某些内容时才停止更改 对不起,如果我的解释不是很好。如果您需要更多信息,请询问。试试看 Application.EnableEvents =Fa
Application.EnableEvents =False
开始导入之前,请添加以下行:
Application.EnableEvents = False
在此事件之后(如果发生错误!):
您需要的代码是
Application.EnableEvents=False
。这将停止触发事件,直到代码遇到Application.EnableEvents=True
根据导入数据的方式,可以在导入过程中设置开关或创建手动运行的小宏
另一种可能是使用Selection_Change事件。如果粘贴数据,这可能是可能的。在这种情况下,选择将由许多细胞组成。当选择包含多个单元格时,可以关闭事件
在不关闭事件的情况下也可以实现同样的想法,只要在选择大于1个单元格时让更改事件跳过其功能即可。请记住,Change_事件会将ActiveCell视为其目标
Application.EnableEvents = True