Использование GrantAccessToMultipleFiles предотвращает запуск под Windows в Windows
Я пишу макрос Excel для автоматического заполнения и сохранения нескольких документов Word. Он отлично работает на Office для Mac 2016, но я хочу обеспечить кросс-совместимость с Windows.
Чтобы уменьшить нагрузку на пользователя при предоставлении индивидуальных разрешений на файлы из-за изолированной программной среды Mac Office, я реализовал команду GrantAccessToMultipleFiles , используя полезное решение ramitarora .
К сожалению, поскольку GrantAccessToMultipleFiles – это специфичная для Mac команда, я запускаю ошибку компиляции: «Sub или Function not defined», как только я пытаюсь запустить ее в Windows. Есть ли этому решение? Поскольку это ошибка компиляции, я не могу просто запустить ее с помощью «On Error Resume Next».
- Как я могу логически протестировать формат другой ячейки в excel
- Извлечь таблицу из html, чтобы преуспеть из командной строки
- Окна VBA для Mac
- Формулы Excel, дающие #VALUE! ошибка при портировании на Mac
- Автоматизация excel в python на mac
Для справки, соответствующий код приведен ниже:
'Operating System check: if pos=0, user is on OSX Dim pos As Integer pos = InStr(Application.OperatingSystem, "Windows") 'If on OSX ask for file permissions in bulk If pos = 0 Then Dim fileAccessGranted As Boolean Dim filePermissionCandidates Dim filePathsArray As String filePathsArray = filePaths(0) For i = 0 To studentNum filePathsArray = filePathsArray & ", " & filePaths(i + 1) Next i 'Create an array with file paths for which permissions are needed filePermissionCandidates = Array(filePathsArray) 'Request access from user fileAccessGranted = GrantAccessToMultipleFiles(filePermissionCandidates) End If
Благодарю.
- IF ELSE в Excel для Mac 2016
- Excel 2011 Mac VBA Combobox значение
- Диапазон копирования от активной книги до закрытой книги, MAC OSX, ERROR
- Экспорт одного листа в HTML
- Массовое преобразование .xls и .xlsx в .txt (вкладка с разделителями) на Mac
- Изменение размера вкладки рабочего листа в Numbers на Mac
- VBA работает в Windows Excel, но не в Mac Excel
- Перенос макроса, зависящего от Windows, для работы в Mac Excel
Вы должны разделить свой код OSX и Windows на разные функции, а затем вызывать только соответствующую функцию. Таким образом, функция с конкретным кодом никогда не вызывается в неправильной системе, и проблема не возникает.
Вы также можете использовать условную компиляцию для разделения кода Mac и Windows:
#If Mac then 'your Mac code #Else 'Windows code #End If
В частности, код для проверки на Mac 2016 или нет должен выглядеть так:
#If MAC_OFFICE_VERSION >= 15 Then ' Do thing for Office for Mac 2016 (now at version 15.26) #Else 'Do thing for Windows #End If
Это из документации Office Dev Center здесь https://dev.office.com/blogs/VBA-improvements-in-Office-2016
Я проверил это, чтобы запустить мой макрос как в ОС OSX, так и в ОС Windows, и он работает.