作者:iamlaosong
我开发的Excel工具在下发到下属部门使用的过程中发现,低版本WPS不能执行所有的VBA代码,高版本也存在很多功能不能用(比如使用VBA连接数据库时,SQL语句的查询结果rst可以用Cells(row1, col1).CopyFromRecordset rst语句整体导入Excel表格,但如果分开引用其字段值rst(0),rst(1)等则不行),有些写法也不认同报错,这时,我会建议他们安装Excel应用软件,他们在安装完Excel之前,往往会删除WPS,结果导致Excel安装后执行VBA程序时会报错,提示如下图所示:
这个结果让我莫名其妙,在我这边正常的程序为啥到他那儿就报错呢?
通过QQ的远程控制,进入代码中调试,才找到错误原因,原来,安装了WPS的机器会自动引用金山的插件,卸载了WPS后,因为找不到这个插件而报错,只要把这个引用前的勾选去掉,就正常了,如下图所示:
这个错误是office2007版报的,我没有验证,但猜测这个错误2003版不是这样报的,依稀记得以前也发现过这样的错误,报的是“找不到工程或库”,所以碰到莫名的错误都可以到引用里面看看,是否存在异常现象。
后来还发现即使在WPS中成功执行的VBA程序,也会增加上述引用,这个文件如果保存后再拿到Excel上使用,也会报出同样的错误。
还有一点需要说明的是这些引用都是跟着文件走的,和Excel环境没关系,所以最简单的办法是重新下发一个工具,问题也就没有了,以前估计也碰到过类似问题,没有深究,都通过重新下发文件解决了,这一次也是好奇,想看看到底什么原因,结果真的发现了原因所在。
所以,如果安装office也没必要删除WPS,毕竟,WPS本地化做的比较好,有很多office没有的功能特点。