Código VBA do Excel Private Sub Worksheet Alterar a função Power não funciona

2

Estou fazendo uma planilha onde a velocidade do vento define a energia potencial do local. Esse valor é a base de algumas planilhas no mesmo arquivo do Excel. Estou tentando escrever um código em que I10 é a velocidade do vento e I12 é o kWh potencial nesse local. Eu quero que ambos I10 as I12 sejam células de entrada onde você pode dizer: Eu quero saber qual velocidade do vento eu preciso para gerar 4.000 kwh ie ou minha velocidade do vento é 4.2 m / s qual será a minha energia potencial?

Isso foi o que eu fiz até agora, mas não consigo que a função de energia funcione. No momento eu defini a célula I12 (The kWh's) sem VBA como =(2208,5/(54,872))*I10^3 onde I10 é a velocidade do vento.

Código do VBA por trás da planilha que não funciona:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Address = "$I$10" Or Target.Address = "$I$12" Then

        WIND = Range("I10")
        KWH = Range("I12")

        Application.EnableEvents = False

        If Target.Address = "$I$10" Then
            Range("I12").Value = (2208.5 / (54.872)) POWER(WIND,3)
        Else
            Range("I10").Value = POWER( KWH (2208.5 / (54.872)),(1/3)

        End If
    End If
    Application.EnableEvents = True
End Sub

Solução potencial, mas não está funcionando no momento.

Function MyPower(Number As Double, Exponent As Double) As Double
    MyPower = Number ^ Exponent
End Function
    
por YouKnowWho 13.01.2014 / 10:41

1 resposta

0

Tente isso (mas verifique novamente as contas, não tenho certeza se está calculando corretamente porque não sei como deve ser a equação)

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Address = "$I$10" Or Target.Address = "$I$12" Then

        wind = Range("I10")
        KWH = Range("I12")

        Application.EnableEvents = False

        If Target.Address = "$I$10" Then
            Range("I12").Value = (2208.5 / 54.872) * wind ^ 3
        Else
            Range("I10").Value = KWH * (2208.5 / 54.872) ^ (1/3)

        End If
    End If
    Application.EnableEvents = True
End Sub
    
por 13.01.2014 / 14:50