Im Folgenden finden Sie häufige Probleme, die beim Konvertieren von VBA-Code in Apps Script mit dem Macro Converter auftreten können.
VBA-APIs, mit denen Dateien gedruckt werden, werden automatisch in Apps Script konvertiert, verhalten sich aber möglicherweise anders als die ursprüngliche VBA-API. Hier sind zwei Beispiele:
VBA API | Verhalten in Apps Script |
---|---|
PrintOut | Wird in Apps Script konvertiert, aber die Apps Script API gibt die Ausgabe in eine Datei statt auf einen Drucker aus. Sie können die PDF-Datei manuell drucken. |
PrintToFile | Wird in Apps Script konvertiert. Die PDF-Datei wird im Ordner „Meine Ablage“ gespeichert. |
Artikel ohne Conversion
Die folgenden Funktionen werden nicht vom Makrokonverter konvertiert und müssen manuell konvertiert werden:
- Einige Arten von Triggern
- Userforms
- Nicht unterstützte Typen von benannten Bereichen
Trigger
Zwei Arten von Triggern, Tastenkombinationen und einige ereignisbasierte Trigger, werden vom Makrokonverter nicht konvertiert. In vielen Fällen können Sie diese Trigger manuell erstellen.
Tastenkombinationen
Wenn Sie Tastenkombinationen hinzufügen möchten, folgen Sie der Anleitung zum Importieren von Funktionen als Makros.
Ereignisbasierte Trigger
Einige Ereignisse aus VBA-Code, z. B. BeforeClose
oder BeforeSave
, haben keine Entsprechungen in Apps Script. Möglicherweise können Sie jedoch eine Problemumgehung erstellen.
Für Ereignisse wie BeforeClose
können Sie ein benutzerdefiniertes Menü oder eine Schaltfläche erstellen, auf die Sie klicken, um die Aktion auszuführen, die vor dem Schließen der Tabelle erfolgen muss.
Da jede Änderung in Google Tabellen automatisch gespeichert wird, sind Workarounds für Ereignisse wie BeforeSave
nicht möglich.
Userforms
In VBA ist ein UserForm ein Fenster oder Dialogfeld in der Benutzeroberfläche einer Anwendung. UserForms werden vom Macro Converter nicht konvertiert. Sie können sie manuell in Apps Script erstellen.
Dialog für Nutzerformular erstellen
- Öffnen Sie die konvertierte Datei auf dem Computer in Google Sheets.
- Klicken Sie oben auf Erweiterungen > ** Apps Script**.
- Klicken Sie links im Editor neben „Dateien“ auf „Datei hinzufügen“ > „HTML“. Wir empfehlen, der HTML-Datei denselben Namen wie dem ursprünglichen VBA-UserForm zu geben.
- Fügen Sie die Felder und Informationen hinzu, die in Ihrem Formular angezeigt werden sollen. Weitere Informationen zu HTML-Formularen finden Sie auf W3school.com.
- Klicken Sie links auf die Apps Script-Datei (GS-Datei) mit dem konvertierten Code.
- Wenn Sie bereits einen
onOpen()
-Trigger in Ihrem Code haben, aktualisieren Sie ihn mit dem Code unten. Wenn Sie denonOpen()
-Trigger nicht in Ihrem Code haben, fügen Sie den folgenden Code hinzu.function onOpen() { SpreadsheetApp.getUi() .createMenu('User Form') .addItem('Show Form', 'showForm') .addToUi(); } function showForm() { var html = HtmlService.createHtmlOutputFromFile('userform_module_name') .setWidth(100) .setTitle('Sign-up for Email Updates'); SpreadsheetApp.getUi().showSidebar(html); }
- Ersetzen Sie
userform_module_name
durch den Namen der HTML-Datei, die Sie hinzugefügt haben. - Klicken Sie oben auf „Projekt speichern“ .
- Wechseln Sie zur Google-Tabelle und aktualisieren Sie die Seite.
- Klicken Sie oben im Google-Tabellenblatt auf Nutzerformular > Formular anzeigen.
Benannte Bereiche
In Excel sind benannte Bereiche Namen, die einer einzelnen Zelle oder einem Zellenbereich zugewiesen werden.
Wenn Sie Ihre Excel-Datei in Google Sheets konvertieren, werden einige Arten von benannten Bereichen nicht konvertiert, da sie nicht unterstützt werden. Hier sind zwei Beispiele:
Nicht unterstützte benannte Bereiche | Beschreibung |
---|---|
Tabellen | Wird in Google Tabellen nicht unterstützt, es gibt aber eine Problemumgehung.
Wenn Sie diesen benannten Bereich in Google Tabellen neu erstellen möchten, fügen Sie einen benannten Bereich hinzu, der auf die A1-Notation des Tabellenbereichs verweist. Verwenden Sie denselben Namen wie für den ursprünglichen benannten Bereich in Ihrem VBA-Code, damit der konvertierte Code ihn erkennt. |
Liste der Bereiche | Wird in Google Tabellen nicht unterstützt. Es gibt keine Problemumgehung. |
Weitere Informationen
- Übersicht über das Add-on „Macro Converter“
- Kompatibilität von VBA-Makros prüfen
- VBA-Makros in Apps Script konvertieren
- Fehler im konvertierten Code beheben
- Tutorials zum Makrokonverter ansehen
- Liste der kompatiblen VBA-APIs