无法find项目或库,在Mac上使用带有Excel VBA的FileSystemObject进行引用

在我有的代码中,我引用了Microsoft Scripting Runtime库,以使用FileSystemObject 。 当然这不适用于Mac。 因此,我的第一个小组是确定代码正在执行的机器正在运行的操作系统,以及当这是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上,由于缺less一个库,这个错误。

有没有不同的方法来完成这个?

您可以使用编译器常量和后期绑定的组合。

函数检查你是否在Mac上编译常量(信贷给Ron de Bruin )

 Function IsMac() As Boolean #If Mac Then IsMac = True #End If End Function 

代码来控制程序stream程:

 Sub BezemResultaat() If IsMac Then MsgBox "etc" Else GetData End If End Sub 

GetData子:

 Sub GetData() Dim objFso As Object Set objFso = CreateObject("Scripting.FileSystemObject") '<-- should not be a compile time error ' do your stuff End Sub