Partilhar via


Resolver 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. Isto causa algumas alterações comportamentais que podem criar problemas com determinados scripts ou cenários. Também existem limitações e comportamentos dos scripts de plataforma do Power Automate que os escritores devem conhecer. Certifique-se de que lê os artigos Resolver problemas de Scripts do Office e Limites e requisitos da Plataforma com Scripts do Office, uma vez que grande parte dessas informações também se aplica a scripts em fluxos.

Dica

Se estiver apenas a começar a utilizar scripts do Office com o Power Automate, comece por Executar Scripts do Office com o Power Automate para saber mais sobre as plataformas.

Importante

Para utilizar scripts do Office no Power Automate, tem de ter uma licença empresarial do Microsoft 365. As licenças do Office 365 Enterprise E1 e office 365 F3 podem utilizar 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 o script no livro do Excel escolhido em seu nome. O livro pode estar fechado quando isto acontece. Qualquer API que dependa do estado atual do utilizador, como Workbook.getActiveWorksheet, pode comportar-se de forma diferente no Power Automate. Isto acontece porque as APIs se baseiam numa posição relativa da vista ou do cursor do utilizador e essa referência não existe num fluxo do Power Automate.

Algumas APIs de referência relativa geram erros no Power Automate. Outros têm um comportamento predefinido que implica o estado de um utilizador. Ao estruturar os scripts, certifique-se de que utiliza referências absolutas para folhas de cálculo e intervalos. Isto torna o fluxo do Power Automate consistente, mesmo que as folhas de cálculo sejam reorganizadas.

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

Os seguintes métodos geram um erro e falham quando são chamados a partir de um script num 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 predefinido nos fluxos do Power Automate

Os seguintes métodos utilizam um comportamento predefinido, em vez do estado atual de qualquer utilizador.

Classe Método Comportamento do Power Automate
Pasta de trabalho getActiveWorksheet Devolve a primeira folha de cálculo no livro ou a folha de cálculo atualmente ativada pelo Worksheet.activate método .
Planilha activate Marca a folha de cálculo como a folha de cálculo ativa para fins de Workbook.getActiveWorksheet.

Atualização não totalmente suportada no Power Automate

Os Scripts do Office não conseguem atualizar a maioria dos dados quando são executados no Power Automate. A maioria dos métodos de atualização, como PivotTable.refresh, não fazem nada quando são chamados num fluxo. Workbook.refreshAllDataConnections apenas é atualizado quando o PowerBI é a origem. Além disso, o Power Automate não aciona uma atualização de dados para fórmulas que utilizam ligações de livros.

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

Os seguintes métodos não fazem nada num script quando são chamados através do Power Automate. Continuam a ser devolvidos com êxito e não geram erros.

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

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

Os seguintes métodos agem de forma diferente nos fluxos do Power Automate do que quando são executados através do Excel.

Classe Método Comportamento do Power Automate
Pasta de trabalho refreshAllDataConnections Atualiza apenas as origens do PowerBI. Para outras origens, o método devolve com êxito, mas não faz nada.

Selecionar livros com o controlo do browser de ficheiros

Ao criar o passo Executar script de um fluxo do Power Automate, tem de selecionar o livro que faz parte do fluxo. Utilize o browser de ficheiros para selecionar o livro, em vez de escrever manualmente o nome do livro.

A ação Executar script do Power Automate a mostrar a opção Mostrar browser de ficheiros seletor.

Para obter mais contexto sobre a limitação do Power Automate e um debate sobre possíveis soluções para a seleção dinâmica de livros, veja este tópico na Comunidade do Microsoft Power Automate.

Transmitir matrizes inteiras como parâmetros de script

O Power Automate permite que os utilizadores transmitam matrizes a conectores como uma variável ou como elementos únicos na matriz. A predefinição é transmitir elementos únicos, o que cria a matriz no fluxo. Para scripts ou outros conectores que assumem matrizes inteiras como argumentos, tem de selecionar o botão Mudar para introduzir toda a matriz para passar a matriz como um objeto completo. Este botão encontra-se no canto superior direito de cada campo de entrada do parâmetro de matriz.

O botão para mudar para introduzir uma matriz inteira numa caixa de entrada de campo de controlo.

Diferenças de fuso horário

Os ficheiros do Excel não têm uma localização ou fuso horário inerentes. Sempre que um utilizador abre o livro, a sessão utiliza o fuso horário local desse utilizador para cálculos de data. O Power Automate utiliza sempre UTC.

Se o script utilizar datas ou horas, poderão existir diferenças comportamentais quando o script é testado localmente versus quando é executado através do Power Automate. O Power Automate permite-lhe converter, formatar e ajustar horas. Consulte Trabalhar com Datas e Horas dentro dos seus fluxos para obter instruções sobre como utilizar essas funções no Power Automate e Transmitir dados de e para scripts no Power Automate para saber como fornecer essas informações de tempo para o script.

Campos de parâmetros de script ou saída devolvida que não aparece no Power Automate

Existem duas razões pelas quais os parâmetros ou os dados devolvidos de um script não são refletidos com precisão no construtor de fluxos do Power Automate.

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

Algumas APIs Web não estão disponíveis com fluxos do Power Automate

Algumas APIs Web, como TextEncoder e Crypto, podem não estar disponíveis ao executar Scripts do Office nos fluxos do Power Automate. Veja APIs Web do MDN para obter uma lista completa das APIs Web.

O Power Automate devolve o erro *API* is not defined, em *API* que especifica uma biblioteca como TextEncoder, ao executar um script que utiliza uma API não suportada.

Confira também