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