如何更新为32位编写的VBA代码以同时与32和64一起使用?

我正在尝试更新用excel macro编写的32 bit MS office以与64 bit excel一起使用。 在64 bit中打开文件时,隐藏模块中始终出现编译错误。

将办公室更新为64 bit后,此错误开始。该代码可以在32 bit上正常工作。 excel启动文件夹中没有Pdfmaker.dotPdfmaker.xla文件,我们也不使用Norton。

我是这方面的新手,谁能帮助我更改代码以使其与32 bit64 bit一起使用。

这是模块1中的代码,我认为需要更新:

Public Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
shmf001 回答:如何更新为32位编写的VBA代码以同时与32和64一起使用?

如果只有Sleep,请使用此

Declare PtrSafe Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) 

更多信息here

更新

  

有条件的编译

     

如果您的代码需要同时在32位和64位Excel上运行,则   另一件事是将条件编译添加到您的VBA。

     

Microsoft设计了两个编译常量来处理此问题:

     

VBA7:如果使用的是Office 2010,则为True;对于较早的版本,则为

     

WIN64:如果您的Office安装是64位,则为true;对于32位,则为false。

     

由于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版本上运行时,才需要这样做。

本文链接:https://www.f2er.com/3158412.html

大家都在问