Início
» ESCRITÓRIO MS
»
Como usar macros do ONLYOFFICE para automatizar a limpeza de planilhas
Como usar macros do ONLYOFFICE para automatizar a limpeza de planilhas
A limpeza de planilhas é repetitiva: os nomes exportados chegam com espaços extras, o texto colado contém espaços não separáveis e fórmulas ou IDs podem ser corrompidos por substituições genéricas. Uma macro do ONLYOFFICE pode padronizar o texto em um intervalo definido, preservando os valores numéricos e as células com fórmulas. O exemplo abaixo lida apenas com espaços em branco; a remoção de duplicatas, a conversão de datas e a exclusão de linhas em branco exigem regras separadas.
Documentação verificada em 6 de outubro de 2026. As macros do ONLYOFFICE usam JavaScript com a API JavaScript do Office, não VBA do Excel. A documentação atual do editor abre o espaço de trabalho de macros em Exibir → Macros . A aparência exata da barra de ferramentas pode variar entre as edições para desktop e hospedadas.
Tarefas de limpeza que esta macro pode realizar
O exemplo remove espaços e tabulações à esquerda e à direita, converte espaços não separáveis em espaços normais e elimina espaços ou tabulações repetidos dentro do texto. Ele ignora fórmulas e valores que não sejam cadeias de caracteres. Esse escopo restrito reduz a probabilidade de alterações em datas, valores ou células calculadas durante a preparação de uma importação recorrente.
Problema com os dados
O que a amostra faz
Revisar antes de automatizar
Espaços e tabulações no início ou no final
Remove-os das células de texto
Geralmente é seguro para nomes e rótulos, mas verifique os campos onde o espaçamento é significativo.
Espaços não separáveis
Substitui-os por espaços normais
Útil para textos copiados da web; verifique o campo de origem.
Espaços ou tabulações repetidos
Recolhe cada execução para um único espaço.
Não utilize em textos de largura fixa ou com recuo intencional.
Fórmulas, números e booleanos
Deixa-os inalterados
Verifique se as células com fórmulas ainda calculam após a execução.
Linhas duplicadas, datas, linhas em branco
Não os altera
Defina primeiro as regras de negócio; estas não são meras alterações cosméticas.
1. Prepare uma cópia e defina o intervalo.
Salve uma cópia de trabalho da planilha antes de executar qualquer macro que altere células. Identifique a planilha e as linhas de dados a serem limpas. No código abaixo, A2:D500há um intervalo de exemplo: presume-se que a linha 1 contenha cabeçalhos e que os dados estejam nas colunas de A a D. Altere esse endereço para corresponder à sua planilha. Use um intervalo delimitado que abranja os registros desejados e não inclua notas, fórmulas ou colunas irrelevantes.
Uma planilha pequena fornece uma amostra delimitada; mantenha a linha de cabeçalho fora da área de limpeza.
Para um primeiro teste, copie alguns registros representativos para uma planilha temporária ou duplique o arquivo e reduza o intervalo, por exemplo A2:D10, . Inclua exemplos com espaços comuns, texto colado, células em branco e fórmulas para que você possa confirmar como a macro trata cada caso.
2. Abra o editor de macros do ONLYOFFICE.
Abra a planilha no Editor de Planilhas do ONLYOFFICE e escolha Exibir → Macros . Crie uma nova macro na janela de macros ou selecione um novo módulo e dê a ela um nome claro, como "Macros" CleanTextWhitespace. O guia oficial de introdução às macros do ONLYOFFICE documenta esse ponto de entrada e o controle de execução.
A faixa de opções Exibir contém o controle Macros, usado para abrir o espaço de trabalho de macros.
Se as macros estiverem desativadas nas configurações do seu editor, consulte Configurações → Configurações avançadas → Macros . O ONLYOFFICE documenta as opções para desativar macros, exibir uma notificação ou ativá-las. Para uma pasta de trabalho que você não criou, não ative todas as macros globalmente apenas para executar um script; inspecione o código e siga a política da sua organização.
3. Cole esta macro delimitada e compatível com 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);
}
}
}
})();
O painel de código mostra o intervalo e os métodos de leitura de células usados pela macro de limpeza.
Os contadores de linha e coluna passados para a função GetCellssão relativos ao intervalo selecionado; os exemplos da API usam posições numeradas para acessar uma célula. A macro lê primeiro a fórmula de cada célula e a ignora quando uma fórmula está presente. Em seguida, lê o valor e edita apenas as strings que realmente mudam. Uma string que se tornaria uma fórmula com sinal de igual após a remoção dos espaços em branco também é ignorada, pois a função SetValuepode interpretar um sinal de igual inicial como uma fórmula.
A expressão de espaço em branco intencionalmente deixa as quebras de linha intactas. Ela não altera maiúsculas e minúsculas, pontuação, valores numéricos ou numeração de datas. Se sua fonte contém notas com várias linhas, campos de largura fixa ou identificadores com espaços especiais, teste essas colunas separadamente e ajuste a política em vez de aplicar uma normalização mais ampla.
4. Execute uma vez e depois verifique o resultado.
Execute a macro a partir do editor de macros. Como ela atualiza as células no intervalo selecionado, inspecione o texto alterado na cópia de trabalho antes de salvar sobre o arquivo original. Compare algumas linhas com o original, incluindo a primeira e a última linha do intervalo. Confirme se os cabeçalhos permaneceram intactos, se as fórmulas ainda funcionam e se as células numéricas, como datas, moedas e IDs, não foram alteradas.
Utilize a planilha para verificar linhas representativas e compará-las com a cópia original.
Para planilhas grandes, filtre ou procure por espaços suspeitos antes e depois da execução e compare a contagem de linhas. A macro não exclui linhas, remove registros duplicados, converte datas ou preenche campos em branco; portanto, essas verificações devem se concentrar em valores de texto. Se precisar de um registro de auditoria visível, adicione uma coluna de revisão separada ou copie os resultados limpos para uma planilha de preparação, em vez de escrever mensagens de status em uma célula qualquer.
Regras comuns de limpeza que exigem uma decisão separada
Registros duplicados: Antes de remover linhas, determine quais colunas definem um registro duplicado e se transações repetidas são válidas. Dois nomes idênticos não representam necessariamente a mesma pessoa ou pedido.
Células e linhas em branco: Uma célula vazia, um zero e um valor de texto como "N/A" têm significados diferentes. Não os substitua nem os exclua sem uma regra de dados.
Datas e números armazenados como texto: primeiro, escolha um formato e uma localidade esperados. O exemplo evita a conversão desses valores porque uma string como essa 03/04/2026é ambígua em diferentes regiões.
Zeros à esquerda: Importe identificadores como 00127texto. Se uma planilha já os tiver armazenado como números, a remoção de zeros à esquerda do texto não restaurará os zeros ausentes.
Normalização de maiúsculas e minúsculas: Converter endereços de e-mail para minúsculas ou códigos de estado para maiúsculas pode ajudar campos específicos, mas aplicar isso a nomes ou descrições de produtos pode destruir a capitalização pretendida.
Use macros do ONLYOFFICE quando uma regra repetível puder ser expressa com precisão e você puder testá-la em uma cópia. O sistema de macros é baseado em JavaScript, e não em VBA, está vinculado a um documento em vez de estar disponível globalmente e tem acesso restrito ao sistema de arquivos e à rede, conforme explicado nas Perguntas Frequentes sobre macros do ONLYOFFICE . Essa restrição limita o que uma macro pode acessar fora do editor, mas ela ainda pode alterar o conteúdo da pasta de trabalho. Portanto, revise e teste o código antes de executá-lo.
Para importações recorrentes, mantenha o script em um modelo controlado ou em uma cópia do documento e use uma lista de verificação simples: confirme a planilha ativa, atualize o endereço do intervalo, exclua cabeçalhos e fórmulas, execute em uma cópia, verifique as strings editadas e compare a pasta de trabalho final com a original antes de salvar ou compartilhar.