有一个自动调用的宏,在某位同事电脑上突然不能用,一打开就直接打开代码页面,提示编译错误:“若要在64位系统上使用,则必须更新此项目中的代码。请检查并更新Declare语句,然后用PrtSafe属性来标记它们”。搞了半天才明白这个64位不是指windows系统,而是指office,VBA在64位上不支持32位的dll引用,需要增加PtrSafe来申明32位的dll,因此要在原来代码的Declare后面插入PtrSafe,比如...Declare Sub...就要改成...Declare PtrSafe Sub...。
至于怎么看office是32位还是64位的,以2016为例,打开一个空白的word或excel,点击左上角的文件-帐户,右边可以看到一个带问号的关于word或关于excel,点这个问号进去,就可以在最上面看到office的位数。或者再简单点,如果你安装时是默认安装,没有修改过安装路径,那么装在C:\Program Files (x86)下的office就是32位,装在C:\Program Files下的就是64位的。
后来试了下,改完代码拷到一个32位的excel上运行也没问题,PtrSafe兼容32位与64位。
>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/2180.html