Excel - Criando UDF a partir de uma fórmula

0

Muitas vezes me deparo com situações em que escrevo fórmulas muito semelhantes, mas detalhadas, que usam o mesmo intervalo como argumento para múltiplas funções.

Como um exemplo simples, considere:

=(A+B)/B

Existe alguma maneira fácil de criar uma UDF, como:

=PCTCHANGE(A,B)

Isso poderia executar exatamente o mesmo cálculo acima? Eu percebo que com operadores aritméticos simples isso é trivial, mas existe uma maneira fácil de envolver algo mais complexo em uma única função fácil?

=IF(""=$U30,"",G30/IF(ROW(G30)-MONTH(U30)<ROW(K$8),G$5,OFFSET(G30,-MONTH(U30),0))-1)

Eu gostaria de evitar traduzir a fórmula em chamadas Application.WorksheetFunction. Eu suponho que Application.Evaluate é provavelmente parte da solução, mas não consigo descobrir como passar os intervalos nele através da UDF.

    
por Ryan 31.12.2014 / 16:32

1 resposta

1

Você precisará abrir o VBA e criar um UDF a partir de um módulo.

Digite ALT-F11 para abrir o editor do VBA. No seu projeto, clique com o botão direito e selecione Inserir - > Módulo

Digite o seguinte na janela do editor do VBA

Function PctChange(A As Double, B As Double) As Double
   PctChange = (A + B) / B
End Function

Quando você chama a função, faça o que normalmente faz. Em qualquer tipo de célula PctChange (CellA, Cell B).

    
por 31.12.2014 / 20:04