Ich schreibe ein Excel-Makro, um automatisch eine Anzahl von Word-Dokumenten zu füllen und zu speichern. Es funktioniert großartig auf Office für Mac 2016, aber ich möchte die Kompatibilität mit Windows sicherstellen.Verwenden von GrantAccessToMultipleFiles verhindert Sub-Ausführung unter Windows
Um die Benutzerbelastung durch das Gewähren einzelner Dateiberechtigungen aufgrund von Mac Office Sandboxing zu reduzieren, habe ich die GrantAccessToMultipleFiles command unter Verwendung von ramitarora's helpful solution implementiert.
Da GrantAccessToMultipleFiles ein Mac-spezifischer Befehl ist, stehe ich leider auf einen Compile-Fehler: "Sub oder Funktion nicht definiert", sobald ich versuche, dies unter Windows auszuführen. Gibt es dafür eine Lösung? Da es sich um einen Kompilierungsfehler handelt, kann ich nicht einfach mit "On Error Resume Next" darüber laufen.
Als Referenz ist relevant Code unten:
'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
Dank.
Ich bin mir nicht sicher über Ihr spezifisches Problem, aber ich hatte ein ähnliches Problem, als ich versuchte, ein Skriptmakro zu haben, das einen offenen Dateidialog auf beiden Systemen mit nur einer Codebasis hätte. Ich habe es irgendwann gelöst. Der Hauptunterschied, den ich zwischen deiner Mine sehe, ist, dass ich entdeckt habe, dass ich den Code in verschiedene Funktionen aufteilen muss und dann eine Picker-Funktion haben muss, um zu entscheiden, welche. Es sieht nicht so aus, als ob dein OSX-spezifischer Code in seine eigene Funktion isoliert worden wäre http://stackoverflow.com/questions/21035212/excel-vb-open-file-osx-and-windows – jskrwyk
Ah, duh, das ist die Lösung ! Ich werde ein separates Sub schreiben und es nur unter OSX aufrufen. Kein Kompilierfehler unter Windows, da dieser nicht aufgerufen wird. Danke für den Vorschlag. – clwatkins
Ich habe hinzugefügt, dass als Antwort, wenn es funktioniert hat, so können Sie es als richtig markieren, um anderen in der Zukunft zu helfen. – jskrwyk