Usando a planilha do excel como uma função

2

Gostaria de saber como posso usar uma planilha do excel como uma função.

Digamos que eu tenha um cálculo complexo na Planilha1 com um parâmetro que eu gostaria de iterar em um intervalo como [1 a 400] em uma segunda planilha para criar uma tabela x, f (x) na Planilha2.

Vou usar o Excel ou o Open Office.

Como eu faria isso?

Obrigado.

Atualização de progresso

Tentativa de fazer um teste na Planilha (Geral):

Public Function test() as Boolean
    test = True
End Function

Então, em uma célula:

=test()

Resultando em #Name?

Também tentei tutoriais on-line scouering.

Parcialmente resolvido:

  • A visibilidade da função é obtida colocando o código em um módulo.
  • Inserir - > módulo no VBA.

Progresso:

Definindo um valor AV usando

 Worksheets("Sheet1").Range("A1").Value = 10

 or

 Worksheets("Sheet1").Cells(1,1).Value = 10

falha silenciosamente e não executa a linha abaixo.

Progresso:

As técnicas funcionam bem se eu reduzir o código a uma sub-rotina sem parâmetros e atribuí-la a um botão.

Solução alternativa

A implementação foi realmente direta ao implementar usando uma macro VBA iniciada a partir de um botão em vez de usar uma função.

I iterou em um intervalo de linhas para obter as entradas para os cálculos.

    
por tovare 06.09.2010 / 21:58

2 respostas

3

A melhor maneira é criar o algoritmo no Excel VBA. Você pode abrir o VBA e digitar isso

Public Function Test1(x as Integer, y as Integer)  
    Test1 = x*y  
End Function   

Você pode chamar essa função como qualquer outra função na barra de fórmulas. Na barra de fórmulas para A1

  • =Test1(2,4) com um resultado de 8.

Altere o algoritmo no VBA para obter os resultados que você está procurando.

    
por 06.09.2010 / 22:12
0

Eu estava procurando uma resposta para uma pergunta semelhante e encontrei algo assim:

public function GetWhatever(byval p1 as variant, byval p2 as variant) as variant
  'Make sure you're in AutoCalculation mode, otherwise use me.calculate
  me.range("A1").value = p1
  me.range("A2").value = p2
  GetWhatever = me.range("A3").value
end function

ASSIM pergunta: link

    
por 05.02.2014 / 14:33