excel - 如何更新为 32 位编写的 VBA 代码以同时使用 32 和 64?
问题描述
我正在尝试更新excel macro
写入32 bit MS office
以使用64 bit excel
. 当我在64 bit
.
此错误在 office 更新为64 bit
. 该代码在32 bit
. excel 启动文件夹中没有Pdfmaker.dot
,Pdfmaker.xla
文件,我们也不使用 Norton。
我是这方面的新手,谁能帮我更改代码以同时32 bit
使用64 bit
.
这是我认为需要更新的模块 1 中的代码:
Public Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
解决方案
如果只是Sleep
那么使用这个
Declare PtrSafe Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
更多信息在这里
更新:
条件编译
如果您的代码需要在 32 位和 64 位 Excel 上运行,那么要做的另一件事是将条件编译添加到您的 VBA。
Microsoft 设计了两个编译常量来处理这个问题:
VBA7:如果您使用的是 Office 2010,则为 True,旧版本为 False
WIN64:如果您的 Office 安装是 64 位,则为真,对于 32 位,则为假。
由于 64 位声明也适用于 32 位 Office 2010,因此您只需测试 VBA7:
#If VBA7 Then
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#Else
Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
#End If
仅当您的代码需要在 2010 之前的 Excel 版本上运行时才需要这样做。
推荐阅读
- c# - 如何在 editorconfig 的 file_header_template 中允许分号
- kubernetes - 通过 github 操作在 CI 管道内成功构建后强制 pod 获取最新图像 - kubernetes
- powershell - 如何从上下文菜单对文件运行 PowerShell 脚本?
- javascript - requirejs 模块搜索 .json.js 文件而不是 .json
- c++ - 嵌套for循环优化
- node.js - discord.js 带有 webhook 的计数命令
- git - glob 排除 gitignore 中的字母数字组合
- python - 将 csv 数据转换为嵌套的 json 格式
- javascript - 如何传输此 http Node.Js 以在 https 上运行?
- java - 负整数的按位非