Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.Calculatemé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.
- Se gerar automaticamente metadados JSON, utilize a
@supportSyncetiqueta JSDoc. - Se criar metadados JSON manualmente, utilize a
"supportSync": truedefinição no"options"objeto do seu ficheiro functions.json . - Se a função utilizar
Excel.RequestContext, chame osetInvocationmétodo deExcel.RequestContexte transmita oCustomFunctions.Invocationobjeto. Por exemplo, veja o exemplo de código.
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];
}