Inicio
» MS OFFICE
»
Cómo usar las macros de ONLYOFFICE para automatizar la limpieza de hojas de cálculo
Cómo usar las macros de ONLYOFFICE para automatizar la limpieza de hojas de cálculo
La limpieza de hojas de cálculo es un proceso repetitivo: los nombres exportados contienen espacios adicionales, el texto pegado incluye espacios de no separación y las fórmulas o los identificadores pueden dañarse con sustituciones extensas. Una macro de ONLYOFFICE puede estandarizar el texto en un rango definido, sin modificar los valores numéricos ni las celdas con fórmulas. El ejemplo siguiente solo gestiona los espacios en blanco; la eliminación de duplicados, la conversión de fechas y la eliminación de filas en blanco requieren reglas independientes.
Documentación revisada el 6 de octubre de 2026. Las macros de ONLYOFFICE utilizan JavaScript con la API de JavaScript de Office, no VBA de Excel. La documentación actual del editor abre el espacio de trabajo de macros desde Ver → Macros . La apariencia exacta de la barra de herramientas puede variar entre las ediciones de escritorio y las alojadas.
Tareas de limpieza que esta macro puede realizar
La muestra elimina los espacios o tabulaciones iniciales y finales, convierte los espacios de no separación en espacios normales y elimina los espacios o tabulaciones repetidos dentro del texto. Omite las fórmulas y los valores que no son cadenas de texto. Este alcance limitado reduce la posibilidad de modificar fechas, cantidades o celdas calculadas al preparar una importación recurrente.
Problema de datos
Lo que hace la muestra
Revisar antes de automatizar
Espacios y tabulaciones al principio o al final
Los elimina de las celdas de texto
Generalmente es seguro para nombres y etiquetas, pero revise los campos donde el espaciado sea significativo.
Espacios sin ruptura
Los reemplaza con espacios regulares
Útil para texto web copiado; compruebe aleatoriamente el campo fuente.
Espacios o tabulaciones repetidos
Cada carrera se reduce a un solo espacio.
No utilizar sobre texto de ancho fijo ni sobre sangría intencionada.
Fórmulas, números y operadores booleanos
Los deja sin cambios
Verifique que las celdas de fórmula sigan calculando después de la ejecución.
Filas duplicadas, fechas duplicadas, filas en blanco
No los cambia
Primero, defina las reglas de negocio; no se trata simplemente de una limpieza superficial.
1. Prepare una copia y defina el rango.
Guarde una copia de trabajo de la hoja de cálculo antes de ejecutar cualquier macro que modifique celdas. Identifique la hoja de cálculo y las filas de datos que desea limpiar. En el código siguiente, A2:D500se muestra un rango de ejemplo: se supone que la fila 1 contiene encabezados y se esperan datos en las columnas A a D. Modifique esta ruta para que coincida con su hoja. Utilice un rango delimitado que abarque los registros deseados y no incluya notas, fórmulas ni columnas irrelevantes.
Una hoja de cálculo pequeña proporciona una muestra delimitada; mantenga la fila de encabezado fuera del rango de limpieza.
Para una primera prueba, copie algunos registros representativos en una hoja temporal o duplique el archivo y reduzca el rango, por ejemplo A2:D10, . Incluya ejemplos con espacios normales, texto pegado, celdas en blanco y fórmulas para que pueda confirmar cómo la macro procesa cada caso.
2. Abra el editor de macros de ONLYOFFICE.
Abra la hoja de cálculo en el Editor de hojas de cálculo de ONLYOFFICE y seleccione Ver → Macros . Cree una nueva macro en la ventana de macros o seleccione un nuevo módulo y asígnele un nombre claro, como por ejemplo CleanTextWhitespace. La guía oficial de introducción a las macros de ONLYOFFICE documenta este punto de entrada y el control de ejecución.
La cinta de opciones Vista contiene el control Macros, que se utiliza para abrir el espacio de trabajo de macros.
Si las macros están deshabilitadas en la configuración de su editor, revise Configuración → Configuración avanzada → Macros . ONLYOFFICE documenta opciones para deshabilitar macros, mostrar una notificación o habilitarlas. Para un libro de trabajo que no haya creado usted, no habilite todas las macros globalmente solo para ejecutar un script; inspeccione el código y siga la política de su organización.
3. Pegue esta macro delimitada y que reconoce fórmulas.
(function () {
var oSheet = Api.GetActiveSheet();
var oRange = oSheet.GetRange("A2:D500");
var nRows = oRange.GetRowsCount();
var nCols = oRange.GetColumnsCount();
for (var r = 1; r <= nRows; r++) {
for (var c = 1; c <= nCols; c++) {
var oCell = oRange.GetCells(r, c);
var sFormula = oCell.GetFormula();
// Do not replace formulas with their displayed results.
if (sFormula) {
continue;
}
var v = oCell.GetValue();
// Restrict this cleanup to text constants.
if (typeof v !== "string") {
continue;
}
var sClean = v
.replace(/\u00A0/g, " ")
.replace(/[ \t]+/g, " ")
.replace(/^[ \t]+|[ \t]+$/g, "");
// SetValue treats strings beginning with "=" as formulas.
if (sClean.charAt(0) === "=") {
continue;
}
if (sClean !== v) {
oCell.SetValue(sClean);
}
}
}
})();
El panel de código muestra los métodos de lectura de rango y de celda utilizados por la macro de limpieza.
Los contadores de filas y columnas que se pasan GetCellsson relativos al rango seleccionado; los ejemplos de la API utilizan posiciones numeradas para acceder a una celda. La macro lee primero la fórmula de cada celda y la omite si hay una fórmula presente. Luego lee el valor y edita solo las cadenas que realmente cambian. Una cadena que se convertiría en una fórmula con signo igual después de recortarla también se omite porque SetValuepuede interpretar un signo igual inicial como una fórmula.
La expresión whitespace no modifica los saltos de línea. No altera la capitalización, la puntuación, los valores numéricos ni las fechas. Si su fuente contiene notas de varias líneas, campos de ancho fijo o identificadores con espacios especiales, pruebe esas columnas por separado y ajuste la política en lugar de aplicar una normalización más general.
4. Ejecútalo una vez y luego verifica el resultado.
Ejecute la macro desde el editor de macros. Dado que actualiza las celdas del rango seleccionado, revise el texto modificado en la copia de trabajo antes de sobrescribir el original. Compare algunas filas con el original, incluyendo la primera y la última del rango. Confirme que los encabezados se mantuvieron intactos, que las fórmulas siguen funcionando y que las celdas numéricas, como las de fechas, moneda e identificadores, no han cambiado.
Utilice la hoja de cálculo para revisar filas representativas y compararlas con la copia original sin modificar.
Para hojas de cálculo extensas, filtre o busque espacios sospechosos antes y después de la ejecución y compare el número de filas. La macro no elimina filas, no deduplica registros, no convierte fechas ni rellena espacios en blanco, por lo que estas comprobaciones deben centrarse en los valores de texto. Si necesita un registro de auditoría visible, añada una columna de revisión independiente o copie los resultados limpios en una hoja de trabajo temporal en lugar de escribir mensajes de estado en una celda cualquiera.
Reglas de limpieza comunes que requieren una decisión aparte
Registros duplicados: Decida qué columnas definen un duplicado y si las transacciones repetidas son válidas antes de eliminar filas. Dos nombres idénticos no necesariamente representan a la misma persona o pedido.
Celdas y filas en blanco: Una celda vacía, un cero y un valor de texto como "N/A" tienen significados diferentes. No las reemplace ni las elimine sin una regla de datos.
Fechas y números almacenados como texto: Primero, seleccione el formato y la configuración regional deseados. El ejemplo evita convertir estos valores porque una cadena como esta 03/04/2026puede resultar ambigua en distintas regiones.
Ceros iniciales: Importa identificadores como 00127texto. Si una hoja de cálculo ya los ha almacenado como números, recortar el texto no puede restaurar los ceros que faltan.
Normalización de mayúsculas y minúsculas: Convertir las direcciones de correo electrónico a minúsculas o los códigos de estado a mayúsculas puede ser útil para campos específicos, pero aplicarlo a nombres o descripciones de productos puede alterar el uso correcto de las mayúsculas.
Utilice las macros de ONLYOFFICE cuando pueda expresar con precisión una regla repetible y probarla en una copia. El sistema de macros utiliza JavaScript en lugar de VBA, está asociado a un documento en lugar de estar disponible globalmente y tiene restringido el acceso directo al sistema de archivos y a la red, como se explica en las preguntas frecuentes sobre macros de ONLYOFFICE . Este entorno aislado limita el alcance de una macro fuera del editor, pero aun así puede modificar el contenido del libro de trabajo, por lo que debe revisar y probar el código antes de ejecutarlo.
Para importaciones recurrentes, mantenga el script en una plantilla controlada o en una copia del documento y utilice una breve lista de verificación: confirme la hoja activa, actualice la dirección del rango, excluya los encabezados y las fórmulas, ejecute el script en una copia, revise las cadenas editadas y compare el libro de trabajo final con el original antes de guardarlo o compartirlo.