Risolvi i problemi più comuni

Questa guida elenca i problemi comuni che potresti riscontrare durante la conversione del codice Visual Basic for Applications (VBA) in Apps Script utilizzando Macro Converter.

Le API VBA che stampano file vengono convertite automaticamente in Apps Script, ma potrebbero comportarsi in modo diverso rispetto all'API VBA originale. La seguente tabella mostra due esempi:

API VBAComportamento in Apps Script
PrintOutViene convertito in Apps Script, ma l'API Apps Script stampa su un file anziché su una stampante. Stampa manualmente il file PDF.
PrintToFileViene convertito in Apps Script. Il file PDF viene salvato nella cartella Il mio Drive.

Articoli non convertiti

Le seguenti funzionalità non vengono convertite da Macro Converter e devono essere convertite manualmente:

Trigger

Due tipi di attivatori, le scorciatoie da tastiera e alcuni attivatori basati su eventi, non vengono convertiti da Macro Converter. In molti casi, puoi creare questi trigger manualmente.

Scorciatoie da tastiera

Per aggiungere scorciatoie da tastiera, segui i passaggi per importare le funzioni come macro.

Trigger basati su eventi

Alcuni eventi del codice VBA, come BeforeClose o BeforeSave, non hanno equivalenti in Apps Script, ma potresti riuscire a creare una soluzione alternativa.

Per eventi come BeforeClose, puoi creare un menu o un pulsante personalizzato su cui fare clic per eseguire l'azione che deve essere eseguita prima di chiudere il foglio di lavoro.

Le soluzioni alternative per l'evento BeforeSave non sono possibili perché Google Fogli salva automaticamente le modifiche man mano che vengono apportate.

Userforms

In VBA, un UserForm è una finestra o una finestra di dialogo nell'interfaccia utente di un'applicazione. Macro Converter non converte i moduli utente. Creali manualmente in Apps Script.

Creare una finestra di dialogo del modulo utente

  1. Apri il file convertito in Fogli sul computer.
  2. In alto, fai clic su Estensioni > ** Apps Script**.
  3. A sinistra dell'editor, accanto a "File", fai clic su Aggiungi un file > HTML. Ti consigliamo di assegnare al file HTML lo stesso nome del UserForm VBA originale.
  4. Aggiungi i campi e le informazioni che vuoi visualizzare nel modulo. Scopri di più sui moduli HTML su W3school.com.
  5. A sinistra, fai clic sul file Apps Script (file GS) contenente il codice convertito.
  6. Se nel codice è già presente un trigger onOpen, aggiornalo con il codice seguente. Se nel codice non è presente il trigger onOpen, aggiungi il seguente codice.
    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. Sostituisci userform_module_name con il nome del file HTML che hai aggiunto.
  8. In alto, fai clic su Salva progetto .
  9. Passa al foglio Google e ricarica la pagina.
  10. Nella parte superiore del foglio Google, fai clic su Modulo utente > Mostra modulo.

Intervalli denominati

In Excel, gli intervalli denominati sono nomi assegnati a una singola cella o a un intervallo di celle.

Quando converti i file Excel in Fogli, alcuni tipi di intervalli denominati non vengono convertiti perché non sono supportati. La seguente tabella elenca alcuni esempi comuni:

Intervalli denominati non supportatiDescrizione
TabelleNon supportato in Fogli, ma esiste una soluzione alternativa.

Per ricreare questo intervallo denominato in Fogli, aggiungi un intervallo denominato che rimandi alla notazione A1 dell'intervallo della tabella. Utilizza lo stesso nome dell'intervallo denominato originale nel codice VBA in modo che il codice convertito lo riconosca.
Elenco di intervalliNon supportato in Fogli. Non esiste una soluzione alternativa.