Cómo resolver problemas comunes

A continuación, se enumeran los problemas comunes que pueden surgir cuando conviertes tu código VBA en Apps Script con Macro Converter.

Impresión

Las APIs de VBA que imprimen archivos se convierten automáticamente en Apps Script, pero pueden comportarse de manera diferente que la API de VBA original. A continuación, presentamos dos ejemplos:

API de VBAComportamiento en Apps Script
PrintOutSe convierte en Apps Script, pero la API de Apps Script imprime en un archivo en lugar de en una impresora. Puedes imprimir el archivo PDF manualmente.
PrintToFileSe convierte en Apps Script. El archivo PDF se guardará en la carpeta Mi unidad.

Elementos sin convertir

Macro Converter no convierte las siguientes funciones, que deben convertirse manualmente:

Activadores

Macro Converter no convierte dos tipos de activadores, combinaciones de teclas y algunos activadores basados en eventos. En muchos casos, puedes crear estos activadores de forma manual.

Combinaciones de teclas

Si quieres agregar combinaciones de teclas, sigue los pasos para importar funciones como macros.

Activadores basados en eventos

Algunos eventos del código de VBA, como BeforeClose o BeforeSave, no tienen equivalentes en Apps Script, pero es posible que puedas crear una solución alternativa.

En el caso de eventos como BeforeClose, puedes crear un menú personalizado o un botón para hacer clic y realizar la acción que debe realizarse antes de cerrar la hoja de cálculo.

Dado que Hojas de cálculo de Google guarda automáticamente cada edición, no es posible encontrar soluciones alternativas para eventos como BeforeSave.

Formas de usuario

En una VBA, un UserForm es una ventana o un cuadro de diálogo en la interfaz de usuario (IU) de una aplicación. Macro Converter no convierte UserForms. Puedes crearlas de forma manual en Apps Script.

Cómo crear un diálogo de formulario de usuario

  1. En tu computadora, abre el archivo convertido en Hojas de cálculo de Google.
  2. En la parte superior, haz clic en Extensiones > ** Apps Script**.
  3. A la izquierda del editor, junto a “Archivos”, haz clic en Agregar un archivo > HTML. Te recomendamos que asignes al archivo HTML el mismo nombre que tu formulario de usuario de VBA original.
  4. Agrega los campos y la información que desees que aparezcan en el formulario. Obtén más información sobre los formularios HTML en W3school.com.
  5. A la izquierda, haz clic en el archivo Apps Script (archivo GS) que tiene el código convertido.
  6. Si ya tienes un activador onOpen() en tu código, actualízalo con el siguiente código. Si no tienes el activador onOpen() en tu código, agrega el siguiente código.
    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. Reemplaza userform_module_name por el nombre del archivo HTML que agregaste.
  8. En la parte superior, haz clic en Guardar proyecto .
  9. Cambia a la hoja de cálculo de Google y vuelve a cargar la página.
  10. En la parte superior de la hoja de cálculo de Google, haz clic en Formulario de usuario > Mostrar formulario.

Rangos con nombre

En Excel, los rangos con nombre son nombres que se asignan a una sola celda o rango de celdas.

Cuando conviertas tu archivo de Excel en Hojas de cálculo de Google, algunos tipos de rangos con nombre no se convertirán porque no son compatibles. A continuación, presentamos dos ejemplos:

Rangos con nombres no admitidosDescripción
TablasNo es compatible con Hojas de cálculo de Google, pero tiene una solución alternativa.

Para volver a crear este rango con nombre en Hojas de cálculo, agrega un rango con nombre que apunte a la notación A1 del rango de la tabla. Usa el mismo nombre que el rango con nombre original en tu código VBA para que el código convertido lo reconozca.
Lista de rangosNo es compatible con Hojas de cálculo de Google. No hay una solución alternativa.