excel32位上的代码在64位上报错

如题所述

Private Declare Function'改为
Private Declare PtrSafe Function

追问

还是有点问题
Private Declare PtrSafe Function WideCharToMultiByte Lib "kernel32" ()
" ( _
ByVal lpDefaultChar As String, _
ByVal lpUsedDefaultChar As Long) As Long

还是有点问题
Private Declare PtrSafe Function WideCharToMultiByte Lib "kernel32" ()
" ( _
ByVal lpDefaultChar As String, _
ByVal lpUsedDefaultChar As Long) As Long

追答

还是那个错误?有什么问题说清楚。

追问

不是了,是缺少行号或标签或语句结束

追答

kernel32 后面的引号不能换行,还有问题代码截图发来。

追问

追答

红色代码第一行前面的双引号去掉。

追问

追答'第一个参数必须跟行:
Public Declare PtrSafe Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, _
 ByVal dwFlags As Long, _
 ByVal lpWideCharStr As Long, _
 ByVal cchWideChar As Long, _
 ByVal lpMultiByteStr As Long, _
 ByVal cchMultiByte As Long, _
 ByVal lpDefaultChar As Long, _
 lpUsedDefaultChar As Long) As Long

追问

追答

你还在换行,把我的复制进去,注意你的库名后面自动补充了一个“()”,编译器认为函数结束了,但是你的参数在后面,所以必须是
...kernel32" (参数列表...)
而不是
...kernel32"() _
(参数列表...)

温馨提示:答案为网友推荐,仅供参考
相似回答