You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求将Excel 32位VBA代码转换为64位代码

32位转64位VBA适配代码

要让这些API声明兼容64位Excel,需做两处核心修改:

  • 给Declare关键字添加PtrSafe后缀,标识该API支持64位环境
  • 将窗口句柄类型的参数(hWnd、hWndInsertAfter)从Long替换为LongPtr——64位系统中窗口句柄是8字节数据,LongPtr会根据系统位数自动适配长度

转换后的代码如下:

Private Declare PtrSafe Function SetWindowPos Lib "user32" ( _
                 ByVal hWnd As LongPtr, _
                 ByVal hWndInsertAfter As LongPtr, _
                 ByVal x As Long, _
                 ByVal y As Long, _
                 ByVal cx As Long, _
                 ByVal cy As Long, _
                 ByVal wFlags As Long) _
                 As Long
Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

补充说明:GetSystemMetrics的参数和返回值均为标准整数,在64位VBA中仍可使用Long类型,无需额外调整。

内容的提问来源于stack exchange,提问作者Jens W.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 03:12:01