很久前用 Access VBA 写个程序,在64位的 Office 下一直报错,遂一直用 32位的 Office。最近尝试安装了 Office 2021,看到那图标那界面顿时爱了。一时没有找到 32位 的 Office 2021,遂决定解决代码的适配问题,好一劳永逸。

1)在操作具体模块时,弹出“Microsoft Visual Basic for Applications”窗口,报:

隐藏的模块中的编译错误:mod_openFile。
     此错误通常会在代码与此应用程序的版本、平台或基础结构不兼容时发生。单击“帮助”以获取如何更正此错逞的信息。

2)进入名称为“mod_openFile”模块(个人自定义的),相关代码红色显示(32位 Office正常),报:

编译错误:
      若要在64位系统上使用,则必须更新此项目中的代码。请检查并更新 Declare 语句,然后用 PtrSafe 属性标记它们。

3)解决方法确实很简单,只需在 Declare 后加上 PtrSafe即可

'原代码段Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPublic Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As LongPublic Declare Function LoadCursorByNum Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
'更新后代码段Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPublic Declare PtrSafe Function SetCursor Lib "user32" (ByVal hCursor As Long) As LongPublic Declare PtrSafe Function LoadCursorByNum Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long

VBA 32位代码适配64位相关推荐

  1. 转载】将32位代码向64位平台移植的注意事项

    转载]将32位代码向64位平台移植的注意事项 新近的64位平台在二进制上与32位应用程序兼容,这意味着可以非常简单地移植现有的程序.许多目前在32位平台上运行良好的程序也许不必移植,除非程序有以下要求 ...

  2. 关于 mPaaS PB 接入模式适配 64 位 CPU 架构中项目报错解决方案

    背景: 2021 年末的时候,国内各个厂商应用市场就开始大力推行 app 进行 64 位架构的适配,并发布了相关规定,大致时间都是 2022 年 2 月份开始不接收仅支持 32 位的应用,9.10 月 ...

  3. Android 适配 64 位架构

    Android 适配 64 位架构 原文地址 https://juejin.cn/post/6964737926617890853 背景 64位的应用性能更好,也能运行在未来仅支持 64 位架构的设备 ...

  4. Android的.so文件,32位处理器与64位处理器

    一.ABI 是什么 ABI 是 Application Binary Interface 的缩写. 不同 Android 手机使用不同的 CPU,因此支持不同的指令集.CPU 与指令集的每种组合都有其 ...

  5. MOV指令在32位汇编程序和64位汇编程序下的相同与不同之处

    mov指令原则 两个操作数(目标操作数和源操作数)的大小必须相同 两个操作数不能同时为内存操作数(也就是不能内存 到 内存) 指令指针寄存器不能作为目标操作数 64位汇编程序下    32位汇编程序和 ...

  6. 从16位到32位再到64位,为何16年过去,依然没有128位系统出现?

    绝大部分人都没有意识到128位的处理器早已经存在了,并且已经存在了几十年.这么多年过去了,不光是128位的处理器出现了,256位.512位的处理器也同样出现了,比如Nvidia GTX 280这样的显 ...

  7. 计算机32位如何变成64位,我电脑是32位的

    2017-10-19 09:12:01 你要换成64位只有重新更换系统,重装一套64的,主要还是底层代码不一样,实际是看不出的 全部 2017-10-19 09:12:01 2017-10-19 09 ...

  8. iOS上应用如何兼容32位系统和64位系统

    在苹果推出iPhone5S时,64位的应用就走到了眼前.当时就看见苹果官方资料宣布iOS7.x的SDK支持了64位的应用,而且内置的应用都已经是64位. 我记得自己刚刚接触电脑时还有16位的系统,指针 ...

  9. php int 32 64,php从32位升级到64位需要注意的几点

    php从32位升级到64位需要注意的几点 (2011-03-20 20:49:46) 标签: 杂谈 分类: php php升级到64位,代码要注意的问题: 1.整型问题. 32位操作系统,php用4个 ...

最新文章

  1. 23个CVPR 2020收录的新数据集,都在这里了!
  2. deepin系统引导_国产 Linux 发行版 深度操作系统 20 正式版发布
  3. 影响网站转化率的10大误区(上)
  4. Android开源框架——图片加载与缓存库 Picasso
  5. c语言接口作用是什么,C语言接口与实现之异常处理try-except
  6. YBTOJ:字符匹配(KMP)
  7. python下载文件暂停恢复_selenium+Python如何取消Chrome下载文件的‘保留’‘放弃’提示?...
  8. html5 载入网页 显示,页面加载完之前显示Loading
  9. C语言相关问题(1)
  10. Atitit.远程接口 监控与木马   常用的api 标准化v2 q216
  11. SQLite: 取某年份的数据
  12. 企业如何建立强大的绩效管理系统
  13. mongovue mysql_mongo客户端mongoVUE的使用
  14. div垂直居中和水平居中的多种方式
  15. lua 斗地主癞子牌型检测中使用递归
  16. 设计原则-依赖倒置原则
  17. 关于yolov5训练大量数据存在的问题记录
  18. 常见嵌入式WEB服务器
  19. C++技术——构造法
  20. 认识TIA博途Portal软件平台

热门文章

  1. Python 爬虫实战,模拟登陆爬取数据
  2. archlinux安装到美化
  3. openstack ubuntu虚机重启卡在booting from hard disk问题解决
  4. 持续集成与持续部署(五)03-TravisCI——Travis CI和Docker的持续集成之所使用的基础组件、dockerfile配置、docker部署脚本
  5. 古巴比伦理财五大金科定律
  6. 我的世界服务器武器修改伤害,我的世界改伤害指令 | 手游网游页游攻略大全
  7. 思维导图(二):绘制规则
  8. 免费电子书 工具 开发工具包 各类资源 下载
  9. word中删除页眉的横线
  10. html链接css代码link,CSS 链接(link)