我想在Excel VBA项目中获得小数计时器分辨率,该项目必须与Windows Excel 2007和Mac OS Excel 2011兼容。我在Windows中使用来自kernel32.dll
的{{3}}找到了一种方法Mac OS上使用sleep
的方法。
我目前对Mac的访问权限有限,所以我现在无法直接测试。如果我这样声明Sleep
:
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
在Mac中打开文件时是否会出错?或者只有当/在Mac中调用Sleep
时才会标记错误?
答案 0 :(得分:1)
我相信你需要使用条件编译来避免你的API声明在Mac上造成错误。
#If Mac Then
MsgBox "I'm a Mac"
#Else
MsgBox "I'm a PC"
#End If
答案 1 :(得分:1)
我有一台使用Office 2011的Mac,并且可以确认当子调用sleep
<{1}}
如果您有其他方法可以在Mac中使用File not found: kernel32
命令,请分享并使用以下逻辑选择Mac或Windows:
sleep
您还可以使用此代码设置最多7位小数的计时器,适用于Mac和Windows:
Public Sub WINorMAC()
'Test for the operating system.
If Not Application.OperatingSystem Like "*Mac*" Then
'Is Windows.
Call Windows_specific_function()
Else
'Is a Mac and will test if running Excel 2011 or higher.
If Val(Application.Version) > 14 Then
Call Mac_specific_function()
End If
End If
End Sub