Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 访问数据库时停止工作表更改事件触发_Vba_Excel - Fatal编程技术网

Vba 访问数据库时停止工作表更改事件触发

Vba 访问数据库时停止工作表更改事件触发,vba,excel,Vba,Excel,我有一个vba宏,它从电子表格中导入数据,并用数据库中的数据填充名为“验证”的表。我试图设置一个工作表更改事件,当工作表中的数据更改时,它将使用新值更新数据库 目前这是可行的,但我遇到的问题是,当我最初从数据库获取该工作表的数据时,工作表更改事件正在触发,这会导致错误 是否有任何方法可以停止更改,即使在填充工作表时触发,并且只有在工作表中实际手动更改了某些内容时才停止更改 对不起,如果我的解释不是很好。如果您需要更多信息,请询问。试试看 Application.EnableEvents =Fa

我有一个vba宏,它从电子表格中导入数据,并用数据库中的数据填充名为“验证”的表。我试图设置一个工作表更改事件,当工作表中的数据更改时,它将使用新值更新数据库

目前这是可行的,但我遇到的问题是,当我最初从数据库获取该工作表的数据时,工作表更改事件正在触发,这会导致错误

是否有任何方法可以停止更改,即使在填充工作表时触发,并且只有在工作表中实际手动更改了某些内容时才停止更改

对不起,如果我的解释不是很好。如果您需要更多信息,请询问。

试试看

 Application.EnableEvents =False 

开始导入之前,请添加以下行:

Application.EnableEvents = False
在此事件之后(如果发生错误!):


您需要的代码是
Application.EnableEvents=False
。这将停止触发事件,直到代码遇到
Application.EnableEvents=True

根据导入数据的方式,可以在导入过程中设置开关或创建手动运行的小宏

另一种可能是使用Selection_Change事件。如果粘贴数据,这可能是可能的。在这种情况下,选择将由许多细胞组成。当选择包含多个单元格时,可以关闭事件

在不关闭事件的情况下也可以实现同样的想法,只要在选择大于1个单元格时让更改事件跳过其功能即可。请记住,Change_事件会将ActiveCell视为其
目标

Application.EnableEvents = True