Excel VBA - файл не найден на Mac

У меня есть функция, чтобы открыть диалоговое окно выбора файлов на Mac (Excel 2015) и вернуть путь. Код приведен ниже, но я думаю, что проблема в пути, а не в коде, и у меня нет Mac для его отладки. Путь, возвращаемый функцией:

SSD: Пользователи: Имя пользователя: Загрузки: экспорт расписания (40).csv

Я изменил:UserName: но он правильно показывает пользователя шоу. Файл существует в этом месте, я попросил пользователя отправить мне путь, и они отправили:

/ Пользователи / Имя пользователя / Загрузки / Экспорт расписания (40).csv

Function GetFileMac()

Dim myPath As String
Dim myScript As String
Dim myFiles As String
Dim mySplit As Variant
Dim n As Long
Dim fName As String
Dim myBook As Workbook

On Error Resume Next
myPath = MacScript("return (path to documents folder) as String")

myScript = _
"set applescript's text item delimiters to "","" " & vbNewLine & _
           "set theFiles to (choose file of type " & _
         " {""com.microsoft.excel.xls"",""public.comma-separated-values-text""} " & _
           "with prompt ""Please select the time sheet file"" default location alias """ & _
           myPath & """ multiple selections allowed false) as string" & vbNewLine & _
           "set applescript's text item delimiters to """" " & vbNewLine & _
           "return theFiles"

myFiles = MacScript(myScript)
On Error GoTo 0

If myFiles <> "" Then

    mySplit = Split(myFiles, ",")
    GetFileMac = mySplit(0)

End If

End Function

Когда я запускаю это, я получаю сообщение об ошибке 1004, файл не найден, но, как упоминалось выше, путь выбирается и доступен в строке fp:

Dim fp as string

' if user on Mac etc... then

fp = GetFileMac

Set someWorkbook = Application.Workbooks.Open(fp) ' error here

1 ответ

Решение

Возможно, вам придется изменить формат пути.

Чтобы сделать путь Mac таким, как этот

SSD:Users:UserName:Downloads:timesheet-export (40).csv

К пути POSIX, как это

/Users/UserName/Downloads/timesheet-export (40).csv

Использование:

set myPath to POSIX path of myPath
Другие вопросы по тегам