Häufige Probleme beheben

Im Folgenden sind häufige Probleme aufgeführt, die auftreten können, wenn Sie Ihren VBA-Code mit dem Makrokonverter in Apps Script konvertieren.

Drucken

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

VBA APIVerhalten in Apps Script
PrintOutWird in Apps Script konvertiert, die Apps Script API gibt jedoch in einer Datei statt auf einem Drucker aus. Sie können die PDF-Datei manuell drucken.
PrintToFileWird in Apps Script konvertiert. Die PDF-Datei wird im Ordner „Meine Ablage“ gespeichert.

Elemente ohne Conversion

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

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

Folgen Sie der Anleitung unter Funktionen als Makros importieren, um Tastenkombinationen hinzuzufügen.

Ereignisbasierte Trigger

Für einige Ereignisse aus dem VBA-Code, z. B. BeforeClose oder BeforeSave, gibt es in Apps Script keine Entsprechungen. Sie können jedoch eine Problemumgehung erstellen.

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

Da Google Tabellen jede Änderung automatisch speichert, sind keine Behelfslösungen für Ereignisse wie BeforeSave möglich.

Nutzerformulare

In VBA ist ein UserForm ein Fenster oder Dialogfeld in der Benutzeroberfläche einer Anwendung. Der Makrokonverter konvertiert UserForms nicht. Sie können sie manuell in Apps Script erstellen.

Dialogfeld zum Erstellen eines Nutzerformulars

  1. Öffnen Sie auf dem Computer die konvertierte Datei 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 wie dem ursprünglichen VBA-Nutzerformular zu geben.
  4. Fügen Sie die Felder und Informationen hinzu, die in Ihrem 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 Ihren konvertierten Code enthält.
  6. Wenn Sie in Ihrem Code bereits einen onOpen()-Trigger haben, aktualisieren Sie ihn mit dem folgenden Code. Wenn der Trigger onOpen() nicht im Code vorhanden ist, 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);
    }
        
  7. Ersetzen Sie userform_module_name durch den Namen der HTML-Datei, die Sie hinzugefügt haben.
  8. Klicken Sie oben auf „Projekt speichern“ .
  9. Wechseln Sie zur Google-Tabelle und aktualisieren Sie die Seite.
  10. Klicken Sie oben in der Google-Tabelle auf Nutzerformular > Formular anzeigen.

Benannte Bereiche

In Excel sind benannte Bereiche Namen, die einer einzelnen Zelle oder einem einzelnen Zellenbereich zugewiesen werden.

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

Nicht unterstützte benannte BereicheBeschreibung
TabellenWird in Google Tabellen nicht unterstützt, es gibt jedoch eine Behelfslösung.

Um diesen benannten Bereich in Google Tabellen neu zu erstellen, fügen Sie einen benannten Bereich hinzu, der auf die A1-Notation des Tabellenbereichs verweist. Verwenden Sie in Ihrem VBA-Code denselben Namen wie der ursprünglich benannten Bereich, damit der konvertierte Code ihn erkennt.
Liste der BereicheWird in Google Tabellen nicht unterstützt. Es gibt keine Behelfslösung.