A continuación, se indican los problemas habituales que puedes encontrar cuando conviertes tu código de VBA a Apps Script con Macro Converter.
Impresión
Las APIs de VBA que imprimen archivos se convierten automáticamente a Apps Script, pero es posible que se comporten de manera diferente a la API de VBA original. A continuación, se muestran dos ejemplos:
API de VBA | Comportamiento en Apps Script |
---|---|
PrintOut | Se convierte a Apps Script, pero la API de Apps Script imprime en un archivo en lugar de en una impresora. Puedes imprimir el archivo PDF de forma manual. |
PrintToFile | Se convierte en Apps Script. El archivo PDF se guarda en tu carpeta de Mi unidad. |
Artículos sin convertir
El Convertidor de macros no convierte las siguientes funciones, por lo que deberás hacerlo de forma manual:
- Algunos tipos de activadores
- Userforms
- Tipos de rangos con nombres no admitidos
Activadores
El convertidor de macros no convierte dos tipos de activadores: las combinaciones de teclas y algunos activadores basados en eventos. En muchos casos, puedes crear estos activadores de forma manual.
Combinaciones de teclas
Para 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ú o un botón personalizados para hacer clic y realizar la acción que debe llevarse a cabo antes de cerrar la hoja de cálculo.
Dado que Hojas de cálculo de Google guarda automáticamente cada edición, no son viables las soluciones alternativas para eventos como BeforeSave
.
Formularios de usuario
En VBA, un UserForm es una ventana o un cuadro de diálogo en la interfaz de usuario (IU) de una aplicación. El Macro Converter no convierte UserForms. Puedes crearlas manualmente en Apps Script.
Crea un diálogo de formulario del usuario
- En tu computadora, abre el archivo convertido en Hojas de cálculo de Google.
- En la parte superior, haz clic en Extensiones > ** Apps Script**.
- A la izquierda del editor, junto a "Archivos", haz clic en Agregar un archivo > HTML. Te recomendamos que le asignes al archivo HTML el mismo nombre que el UserForm original de VBA.
- Agrega los campos y la información que deseas que aparezcan en el formulario. Obtén más información sobre los formularios HTML en W3school.com.
- A la izquierda, haz clic en el archivo de Apps Script (archivo .gs) que contiene el código convertido.
- Si ya tienes un activador de
onOpen()
en tu código, actualízalo con el código que se muestra a continuación. Si no tienes el activadoronOpen()
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); }
- Reemplaza
userform_module_name
por el nombre del archivo HTML que agregaste. - En la parte superior, haz clic en Guardar proyecto .
- Cambia a la hoja de cálculo de Google y vuelve a cargar la página.
- 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 les asignan a una sola celda o a un rango de celdas.
Cuando conviertes tu archivo de Excel a Hojas de cálculo de Google, algunos tipos de rangos con nombre no se convertirán porque no son compatibles. A continuación, se muestran dos ejemplos:
Rangos con nombre no admitidos | Descripción |
---|---|
Tablas | No se admite en 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 de VBA para que el código convertido lo reconozca. |
Lista de rangos | No se admite en Hojas de cálculo de Google. No hay una solución alternativa. |
Artículos relacionados
- Descripción general del complemento Macro Converter
- Cómo determinar si las macros de VBA son compatibles
- Cómo convertir macros de VBA a Apps Script
- Cómo corregir errores en el código convertido
- Mira instructivos sobre Macro Converter
- Lista de APIs de VBA compatibles