Häufige Probleme beheben

Im Folgenden finden Sie häufige Probleme, die beim Konvertieren von VBA-Code in Apps Script mit dem Macro Converter auftreten können.

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
PrintOutDie Funktion wandelt in Apps Script um, aber die Apps Script API druckt in eine Datei statt auf einen Drucker. Sie können die PDF-Datei manuell drucken.
PrintToFileIn Apps Script konvertiert. Die PDF-Datei wird im Ordner „Meine Ablage“ gespeichert.

Artikel ohne Conversion

Die folgenden Funktionen werden vom Makrokonverter nicht 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, folgen Sie der Anleitung zum Importieren von Funktionen als Makros.

Ereignisbasierte Trigger

Einige Ereignisse aus VBA-Code, z. B. BeforeClose oder BeforeSave, haben keine Entsprechung in Apps Script. Möglicherweise können Sie jedoch eine Umgehung finden.

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 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.

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 werden benannte Bereiche einer einzelnen Zelle oder einem Zellenbereich zugewiesen.

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.