我正在寫一個Excel宏來自動填充和保存大量的Word文檔。它適用於Office 2016 for Mac 2016,但我希望確保與Windows的交叉兼容性。使用GrantAccessToMultipleFiles可以防止在Windows上運行子版
爲了減少由於Mac Office沙箱而給予單個文件許可的用戶負擔,我實現了GrantAccessToMultipleFiles command,使用ramitarora's helpful solution。
不幸的是,因爲GrantAccessToMultipleFiles是一個特定於Mac的命令,所以我嘗試在Windows上運行時遇到了編譯錯誤:「Sub or Function not defined」。有針對這個的解決方法嗎?因爲這是一個編譯錯誤,我不能用「On Error Resume Next」來運行它。
作爲參考,有關代碼如下:
'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
感謝。
我不確定你的具體問題,但我有一個類似的問題,當我試圖讓一個腳本宏在兩個只有一個代碼庫的系統上有一個打開的文件對話框。我最終解決了它。我在你的礦區中看到的主要區別是,我發現我必須將代碼分成不同的函數,然後有一個選擇器函數來決定哪一個函數。它看起來不像你的OSX特定的代碼已被孤立到它自己的函數http://stackoverflow.com/questions/21035212/excel-vb-open-file-osx-and-windows – jskrwyk
啊,杜,這就是解決方案!我將編寫一個單獨的子文件並僅在OSX上調用它。因爲它不會被調用,Windows上沒有編譯錯誤。感謝您的建議。 – clwatkins
我已經添加了,如果它的工作,以便您可以標記爲正確的,以幫助其他人在未來。 – jskrwyk