Excel VBA 代码私有子工作表更改电源功能不起作用

Excel VBA 代码私有子工作表更改电源功能不起作用

我正在制作一个工作表,其中风速定义了该位置的势能。此值是同一 Excel 文件中几张工作表的基础。我正在尝试编写一个代码,其中I10风速为 ,I12该位置的势能为 kWh。我希望两者I10都是I12输入单元格,您可以在其中说:我想知道我需要什么风速才能产生 4000 kwh,即或者我的风速为 4.2 m/s,我的势能是多少?

这是我目前所做的,但我无法让功率函数工作。目前,我在没有 VBA 的情况下将单元格(kWh)定义为I12风速。=(2208,5/(54,872))*I10^3I10

工作表后面的 VBA 代码不起作用:

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

潜在的解决方案,但目前不起作用。

Function MyPower(Number As Double, Exponent As Double) As Double
    MyPower = Number ^ Exponent
End Function

答案1

试试这个(但要仔细检查数学,我不确定它是否计算正确,因为我不确定等式应该是什么样子)

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

相关内容