Häufige Probleme beheben

Häufige Probleme, die beim Konvertieren von VBA-Code in Apps Script mit dem Macro Converter auftreten können, sind unten aufgeführt.

Drucken

VBA-APIs, die Dateien drucken, werden automatisch in Apps Script konvertiert. Sie verhalten sich jedoch möglicherweise anders als die ursprüngliche VBA-API. Hier sind zwei Beispiele:

VBA APIVerhalten in Apps Script
PrintOutWird in Apps Script konvertiert, aber die Apps Script API gibt eine Datei anstelle eines Druckers aus. Sie können die PDF-Datei manuell drucken.
PrintToFileIn Apps Script konvertiert. Die PDF-Datei wird im Ordner „Meine Ablage“ gespeichert.

Nicht konvertierte Elemente

Die folgenden Funktionen werden nicht vom Macro Converter konvertiert und müssen manuell konvertiert werden:

Trigger

Zwei Triggertypen, Tastenkürzel 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, führen Sie die Schritte unter Funktionen als Makros importieren aus.

Ereignisbasierte Trigger

Für einige Ereignisse aus VBA-Code, z. B. BeforeClose oder BeforeSave, gibt es in Apps Script keine Entsprechungen. Möglicherweise lässt sich das Problem jedoch umgehen.

Für Ereignisse wie BeforeClose können Sie ein benutzerdefiniertes Menü oder eine Schaltfläche erstellen, über die die Aktion ausgeführt wird, die vor dem Schließen der Tabelle ausgeführt werden muss.

Da in Google Tabellen jede Änderung automatisch gespeichert wird, sind Umgehungen für Ereignisse wie BeforeSave nicht möglich.

Userforms

In VBA ist UserForm ein Fenster oder Dialogfeld in der Benutzeroberfläche (UI) einer Anwendung. UserForms werden vom Macro Converter nicht konvertiert. Sie können sie manuell in Apps Script erstellen.

Dialogfeld für Nutzerformulare erstellen

  1. Öffnen Sie die konvertierte Datei auf dem Computer in Google Tabellen.
  2. Klicken Sie oben auf Erweiterungen > ** Apps Script**.
  3. Klicken Sie links im Editor neben „Dateien“ auf „Datei hinzufügen“  > HTML. Wir empfehlen, der HTML-Datei denselben Namen zu geben wie der ursprünglichen VBA-UserForm.
  4. Fügen Sie die Felder und Informationen hinzu, die im Formular angezeigt werden sollen. Weitere Informationen zu HTML-Formularen finden Sie unter W3school.com.
  5. Klicken Sie links auf die Apps Script-Datei (GS-Datei), die den konvertierten Code enthält.
  6. Wenn Sie bereits einen onOpen()-Trigger in Ihrem Code haben, aktualisieren Sie ihn mit dem Code unten. Wenn der Trigger onOpen() nicht in Ihrem Code enthalten ist, fügen Sie den Code unten 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);
    }
        
  7. Ersetzen Sie userform_module_name durch den Namen der hinzugefügten HTML-Datei.
  8. Klicken Sie oben auf „Projekt speichern“ .
  9. Wechseln Sie zu Google Tabellen und aktualisieren Sie die Seite.
  10. Klicken Sie oben in der Google-Tabelle auf Nutzerformular > Formular anzeigen.

Benannte Bereiche

In Excel sind benannte Bereiche die Namen einer einzelnen Zelle oder eines Zellbereichs.

Wenn Sie Ihre Excel-Datei in Google Tabellen konvertieren, werden einige Arten von benannten Bereichen nicht konvertiert, da sie nicht unterstützt werden. Hier sind zwei Beispiele:

Nicht unterstützte benannte BereicheBeschreibung
TabellenWird 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 in Ihrem VBA-Code denselben Namen wie für den ursprünglichen benannten Bereich, damit er vom konvertierten Code erkannt wird.
Liste der BereicheWird in Google Tabellen nicht unterstützt. Es gibt keine Umgehungslösung.