我们在使用E立方EXCEL服务器来开发模板的过程中,有时候会用到VBA来调用其他 API函数实现一些特殊功能。这时就要考虑不同EXCEL版本的问题。
当你在32位EXCLE上声明API函数后,在64位EXCLE上使用,就会报如下图所示错误:
此时,在声明函数处,进行如下处理即可:
#If VBA7Then 'VBA7代表64位office,在64位office上声明函数,需要用到“PtrSafe”
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias 。。。。。。
#Else
Private Declare Function ShellExecute Lib"shell32.dll" Alias 。。。。。。。
#End If
这样,系统会自动判断是32位EXCEL,还是64位EXCEL,来执行不同的函数声明语句。
当你在32位EXCLE上声明API函数后,在64位EXCLE上使用,就会报如下图所示错误:
此时,在声明函数处,进行如下处理即可:
#If VBA7Then 'VBA7代表64位office,在64位office上声明函数,需要用到“PtrSafe”
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias 。。。。。。
#Else
Private Declare Function ShellExecute Lib"shell32.dll" Alias 。。。。。。。
#End If
这样,系统会自动判断是32位EXCEL,还是64位EXCEL,来执行不同的函数声明语句。