Compartilhar via


Solucionar problemas de scripts do Office em execução no Power Automate

O Power Automate executa scripts em seu nome em sessões independentes do Excel. Isso causa algumas alterações comportamentais que podem criar problemas com determinados scripts ou cenários. Há também limitações e comportamentos dos roteiristas de script de plataforma do Power Automate que devem saber. Leia os artigos Solucionar problemas de scripts e requisitos de plataforma do Office com scripts do Office, pois grande parte dessas informações também se aplica a scripts em fluxos.

Dica

Se você estiver apenas começando a usar scripts do Office com o Power Automate, comece com Executar Scripts do Office com o Power Automate para saber mais sobre as plataformas.

Importante

Para usar scripts do Office no Power Automate, você deve ter uma licença comercial do Microsoft 365. As licenças E1 e Office 365 F3 Office 365 Enterprise podem usar scripts com o Power Automate, mas não têm integrações do Power Automate diretamente no Excel.

Evitar referências relativas

O Power Automate executa seu script na pasta de trabalho do Excel escolhida em seu nome. A pasta de trabalho pode ser fechada quando isso acontecer. Qualquer API que dependa do estado atual do usuário, como Workbook.getActiveWorksheet, pode se comportar de forma diferente no Power Automate. Isso ocorre porque as APIs são baseadas em uma posição relativa da exibição ou cursor do usuário e essa referência não existe em um fluxo do Power Automate.

Algumas APIs de referência relativa lançam erros no Power Automate. Outros têm um comportamento padrão que implica o estado de um usuário. Ao projetar seus scripts, use referências absolutas para planilhas e intervalos. Isso torna o fluxo do Power Automate consistente, mesmo que as planilhas sejam reorganizadas.

Métodos de script que falham nos fluxos do Power Automate

Os métodos a seguir geram um erro e falham quando chamados de um script em um fluxo do Power Automate.

Classe Método
Gráfico activate
Range select
Pasta de trabalho getActiveCell
Pasta de trabalho getActiveChart
Pasta de trabalho getActiveSlicer
Pasta de trabalho getSelectedRange
Pasta de trabalho getSelectedRanges

Métodos de script com um comportamento padrão nos fluxos do Power Automate

Os métodos a seguir usam um comportamento padrão, em vez do estado atual de qualquer usuário.

Classe Método Comportamento do Power Automate
Pasta de trabalho getActiveWorksheet Retorna a primeira planilha na pasta de trabalho ou a planilha ativada atualmente pelo Worksheet.activate método.
Planilha activate Marca a planilha como a planilha ativa para fins de Workbook.getActiveWorksheet.

Atualizar sem suporte total no Power Automate

Os Scripts do Office não podem atualizar a maioria dos dados quando executados no Power Automate. A maioria dos métodos de atualização, como PivotTable.refresh, não faz nada quando chamado em um fluxo. Workbook.refreshAllDataConnections só é atualizado quando o PowerBI é a origem. Além disso, o Power Automate não dispara uma atualização de dados para fórmulas que usam links de pasta de trabalho.

Métodos de script que não fazem nada nos fluxos do Power Automate

Os métodos a seguir não fazem nada em um script quando chamados por meio do Power Automate. Eles ainda retornam com êxito e não lançam erros.

Classe Método
PivotTable refresh
Pasta de trabalho refreshAllPivotTables
Planilha refreshAllPivotTables

Métodos de script com um comportamento diferente no Power Automate

Os métodos a seguir agem de forma diferente nos fluxos do Power Automate do que quando executados pelo Excel.

Classe Método Comportamento do Power Automate
Pasta de trabalho refreshAllDataConnections Só atualiza as fontes do PowerBI. Para outras fontes, o método retorna com êxito, mas não faz nada.

Selecionar pastas de trabalho com o controle do navegador de arquivos

Ao criar a etapa Executar script de um fluxo do Power Automate, você precisa selecionar qual pasta de trabalho faz parte do fluxo. Use o navegador de arquivos para selecionar sua pasta de trabalho, em vez de digitar manualmente o nome da pasta de trabalho.

A ação de script Do Power Automate Run mostrando a opção Mostrar navegador de arquivos picker.

Para obter mais contexto sobre a limitação do Power Automate e uma discussão sobre possíveis soluções alternativas para a seleção dinâmica de pastas de trabalho, confira este thread na Comunidade do Microsoft Power Automate.

Passar matrizes inteiras como parâmetros de script

O Power Automate permite que os usuários passem matrizes para conectores como uma variável ou como elementos únicos na matriz. O padrão é passar elementos únicos, o que cria a matriz no fluxo. Para scripts ou outros conectores que tomam matrizes inteiras como argumentos, você precisa selecionar o botão Alternar para inserir a matriz inteira para passar a matriz como um objeto completo. Este botão está no canto superior direito de cada campo de entrada de parâmetro de matriz.

O botão para alternar para a entrada de uma matriz inteira em uma caixa de entrada do campo de controle.

Diferenças de fuso horário

Os arquivos do Excel não têm um local inerente ou um fuso horário. Sempre que um usuário abre a pasta de trabalho, sua sessão usa o fuso horário local desse usuário para cálculos de data. O Power Automate sempre usa UTC.

Se o script usar datas ou horários, poderá haver diferenças comportamentais quando o script for testado localmente versus quando ele for executado pelo Power Automate. O Power Automate permite converter, formatar e ajustar os horários. Consulte Trabalhar com Datas e Horários dentro de seus fluxos para obter instruções sobre como usar essas funções no Power Automate e Passar dados de e para scripts no Power Automate para saber como fornecer essas informações de tempo para o script.

Campos de parâmetro de script ou saída retornada não aparecendo no Power Automate

Há dois motivos para que os parâmetros ou dados retornados de um script não sejam refletidos com precisão no construtor de fluxo do Power Automate.

A assinatura de um script é armazenada com o conector do Excel Business (Online) quando ele é criado. Remova o conector antigo e crie um novo para obter os parâmetros mais recentes e retornar valores para a ação Executar script .

Confira também