在我的代码中,我引用了Microsoft Scripting Runtime库,以使用FileSystemObject
。当然这不适用于Mac。因此,我的第一个子程序是确定正在运行的代码正在运行的机器的OS,并在这是Mac时停止执行:
Sub BezemResultaat()
If Left(Application.OperatingSystem, 3) = "Mac" Then
fout = MsgBox("Deze macro werkt alleen op een windows PC vooralsnog.", vbOKOnly, "Fout!")
If fout = vbYes Then
Exit Sub
End If
Else
Call GetData
End If
End Sub
在GetData
子中我提到了FSO。我认为这样可行,但在Mac上由于缺少库而出错。
是否有不同的方法来实现这一目标?
答案 0 :(得分:2)
您可以使用compiler constants和late binding的组合。
检查您是否在具有编译器常量的Mac上的功能(归功于Ron de Bruin)
Function IsMac() As Boolean
#If Mac Then
IsMac = True
#End If
End Function
控制程序流程的代码:
Sub BezemResultaat()
If IsMac Then
MsgBox "etc"
Else
GetData
End If
End Sub
GetData
sub:
Sub GetData()
Dim objFso As Object
Set objFso = CreateObject("Scripting.FileSystemObject") '<-- should not be a compile time error
' do your stuff
End Sub