excel交流 发表于 2017-9-20 06:27:02

24-application enable events属性

原帖由 zznjcs 于 2009-9-30 14:11 发表
http://club.excelhome.net/images/common/back.gif
在前面我没有用On Error Resume Next这句,虽然程序可以执行,(两列都会变化),但全有错误提示出现在VLOOKUP函数这一句,为什么会出现?


还是Change事件的原因,每一次改变单元格的数值都会触发这个事件,而错误是因为找不到查询的值的原因。
比如:
当你输入Q时,把空改为Q,触发了Change事件,这时运行中间的Vlookup语句,查找到Q,并把当前单元格改为“青龙办事处”,这是由于单元格值又发生了改变,又一次触发了Change事件,再次执行Vlookup语句,因为查找不到“青龙办事处”,所以会出错。
实际上这个程序是执行了两遍。


解决的办法可以用On Error Resume Next忽略错误,也可以用Application.EnableEvents = False语句禁止第二次事件的发生。

如果用了Vlookup,在用上Application.EnableEvents = False的同时,建议还是用上On Error Resume Next语句,因为你第一次输入的数据未必就能在查询的表里能找到。

页: [1]
查看完整版本: 24-application enable events属性