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

时间:2017-06-21 09:19:06

标签: excel excel-vba excel-vba-mac vba

在我的代码中,我引用了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上由于缺少库而出错。

是否有不同的方法来实现这一目标?

1 个答案:

答案 0 :(得分:2)

您可以使用compiler constantslate 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