Partilhar via


Funções personalizadas síncronas

As funções personalizadas síncronas permitem que os processos de avaliação e formato condicional são executados no Excel em simultâneo com a função personalizada. Ative o suporte síncrono quando a sua função personalizada precisar de ser executada em conjunto com qualquer um dos processos do Excel listados neste artigo. As funções personalizadas que não suportam operações síncronas devolvem um erro como #CALC! ou #VALUE! quando são executadas ao mesmo tempo que estes processos do Excel.

Aviso

As funções personalizadas síncronas não suportam operações de escrita com APIs JavaScript do Office, como utilizar Range.values para definir um valor de célula. Chamar uma operação de escrita numa função personalizada síncrona pode fazer com que o Excel congele.

Processos do Excel suportados por funções personalizadas síncronas

As seguintes ações e processos funcionam com funções personalizadas síncronas.

Ações de avaliação suportadas

  • Selecione Fórmulas e, em seguida, Avaliar Fórmula no Excel.
  • Selecionar Fórmulas e, em seguida, Inserir Função no Excel.
  • No modo de edição de células, selecione parte de uma fórmula e utilize F9 para ver resultados de cálculo parciais.
  • O Application.Calculate método no VBA.

Ações de formato condicional suportadas

A lista seguinte aplica-se a ações de formatação condicional acionadas pela IU do Excel e pelas APIs javaScript do Office.

  • Crie uma nova regra.
  • Editar regras.
  • Eliminar regras.
  • Reordenar regras.
  • Altere o intervalo "Aplica-se a".
  • Ative ou desative "Parar se for verdadeiro".
  • Limpar todas as regras.
  • Cortar e colar células que contêm formatação condicional.
  • Copie e cole células que contenham formatação condicional.

Observação

Quando uma função personalizada síncrona demora muito tempo a concluir, o Excel pode bloquear temporariamente a interface de utilizador enquanto aguarda pelo resultado. Para evitar interrupções prolongadas, os utilizadores podem cancelar a execução da função em qualquer altura utilizando a chave Esc ou selecionando em qualquer lugar fora da célula ou caixa de diálogo.

Ativar o suporte síncrono no seu suplemento

Para suportar cenários síncronos no seu suplemento, siga os seguintes passos.

Importante

As funções personalizadas síncronas não podem ser funções voláteis ou de transmissão em fluxo. Se utilizar a @supportSync etiqueta com @volatile ou @streaming etiquetas, o Excel ignora o suporte síncrono. O suporte volátil ou de transmissão em fluxo tem precedência.

Exemplo de código

O seguinte exemplo de código mostra como criar uma função personalizada síncrona.

/** 
 * A synchronous custom function that takes a cell address and returns the value of that cell.
 * @customfunction
 * @supportSync
 * @param {string} address The address of the cell from which to retrieve the value.
 * @param {CustomFunctions.Invocation} invocation Invocation object.
 * @returns The value of the cell at the input address.
 */ 
export async function getCellValue(address, invocation) {
  const context = new Excel.RequestContext();
  context.setInvocation(invocation); // The `invocation` object must be passed in the `setInvocation` method for synchronous functions.

  const range = context.workbook.worksheets.getActiveWorksheet().getRange(address);
  range.load("values");

  await context.sync(); 
  return range.values[0][0];
}

Confira também