VBA (кнопка Excel) работает на Windows, но не на MAC - PullRequest
0 голосов
/ 02 октября 2019

У меня есть поле, которое генерирует PDF на основе данных в таблицах Excel. Это работает в Windows с использованием Office 2016, но возвращает сообщение об ошибке при использовании в Mac.

Mac Ошибка: ошибка времени выполнения "1004". Ошибка с методом: "GetSaveAsFilename" объекта "_Application".

Код VBA находится здесь:

    Sub PDF_Datei_erstellen()
'** Blatt "Angebot" als PDF erstellen

'** Blätter Angebot und Anhang gruppieren
Sheets(Array("Angebot", "Anhang")).Select
Sheets("Angebot").Activate

'** Dateiname zusammenbauen
dateiname = "Kostenvoranschlag_" & ActiveSheet.Range("D14").Value

'** Export-Voragben
exportname = Application.GetSaveAsFilename(dateiname, "PDF-Dateien (*.pdf), *.pdf", , "PDF-Export", "PDF-Export")

'** PDF exportieren
If exportname <> False Then
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=exportname, _
  Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End If

Application.ScreenUpdating = False
Sheets("PreisNavi").Select
Sheets("Angebot").Select
Application.ScreenUpdating = True

End Sub


Sub PDF_Wirtschaftlichkeitsberechnung()
'** Blätter "Zusammenfassung", "Gesamtübersicht", "100 % Invest Eigenkapital" und "Invest Fremdkapital" als PDF erstellen

'** Relevante Blätter gruppieren
Sheets(Array("Zusammenfassung", "Gesamtübersicht", "100 % Invest Eigenkapital", "Invest Fremdkapital")).Select
Sheets("Zusammenfassung").Activate

'** Dateiname zusammenbauen
dateiname = "Wirtschaftlichkeitsberechnung_" & ThisWorkbook.Sheets("Angebot").Range("C13").Value

'** Export-Voragben
exportname = Application.GetSaveAsFilename(dateiname, "PDF-Dateien (*.pdf), *.pdf", , "PDF-Export", "PDF-Export")

'** PDF exportieren
If exportname <> False Then
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=exportname, _
  Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End If

'** Array wieder aufheben
Application.ScreenUpdating = False
With ThisWorkbook
  .Sheets("Internes Eingabeformular").Select
  .Sheets("Zusammenfassung").Select
End With
Application.ScreenUpdating = True

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...