1. Declare PtrSafe Function语句的用途 Declare PtrSafe Function语句用于在VBA中声明一个外部函数,使其可以在VBA代码中调用。PtrSafe关键字是64位Office版本中引入的,用于确保指针(或句柄)的大小在32位和64位环境中都是安全的。在64位Office版本中,如果不使用PtrSafe关键字,则可能会遇到指针大小
Declare PtrSafe Function GetActiveWindow Lib "User32" () As LongPtr ' Conditional Compilation Example #IfVba7Then' Code is running in 32-bit or 64-bit VBA7.#If Win64 Then ' Code is running in 64-bit VBA7. #Else' Code is not running in 64-bit VBA7.#End If #Else' Code is NOT ...
请检查并更新Declare语句,然后用PtrSafe属性标记它们. 解决方法:为了兼容64位系统,需要在Declare 后面加PtrSafe 进行标记,即由原来的Declare更改为Declare PtrSafe Declare 语句 (VBA) | Microsoft Docs
#If VBA7 Then Declare PtrSafe Sub... #Else Declare Sub... #EndIf Syntax 1[ Public | Private ] Declare Sub name Lib "libname" [ Alias "aliasname" ] [ ( [ arglist ] ) ]Syntax 2[ Public | Private ] Declare Function name Lib "libname" [ Alias "aliasname" ] [ ( [ arglist ]...
如果不使用此属性,那么在 64 位系统中使用 Declare 语句会导致编译时错误“。个人建议先备份Excel文件,然后在Excel中同时敲击Alt键和F11键,打开Excel VBA编辑器,然后找”Declare“,在它后面添加”PtrSafe“测试。 2、如果可以删除宏,我这建议你在Excel下同时敲击Alt;F8,或者点击”开发者工具“ > 在”代码“组,...
VBA 中的DeclarePtrSafe 兼容64位系统 以前由于软件版本都是32位的,现在版本升级为64位,则编写的VBA 代码报编译错误,如下:若要在64位系统上使⽤,则必须更新此项⽬中的代码。请检查并更新Declare 语句,然后⽤PtrSafe 属性标记它们 .解决⽅法:为了兼容64位系统,需要在Declare 后⾯加PtrSafe 进⾏标记...
Public Declare PtrSafe Function GetDC Lib "user32" (ByVal hwnd As LongPtr) As LongPublic Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hdc As LongPtr, ByVal nIndex As LongPtr) As LongPublic Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hwnd As LongPtr, ByVal hdc...
#If Vba7 And Win64 Then Declare PtrSafe Function GetWindowsDirectory Lib "kernel32" (ByVal ipBuffer As String, ByVal nSize As Long) As Long # Else Rem 64位系统,安装的Excel可能是32位的 Declare Function GetWindowsDirectory Lib "kernel32" (ByVal ipBuffer As String, ByVal nSize As Long) As...
#If VBA7 Then Declare PtrSafe Sub... #Else Declare Sub... #EndIf 语法1 (Sub) [Public|Private]声明***PtrSafe***Sub名称Lib"libname" [Alias"aliasname"] [([arglist])] 语法2 (Function) [Public|Private]声明***PtrSafe***函数名称Lib"libname" [Alias"aliasname"] [([arglist])] [Astype]...
1回复贴,共1页 <<返回vba吧请问我在 Declare 之后加了PtrSafe 加报错请问是什么问题 只看楼主 收藏 回复 爱很真的伤 初涉江湖 1 请问我在 Declare 之后加了PtrSafe 加报错请问是什么问题 爱很真的伤 初涉江湖 1 有人回答吗 登录百度账号 下次自动登录 忘记密码? 扫二维码下载贴吧客户端 下载贴吧APP看...