加速 VBA 函数

问题描述 投票:0回答:1

我有以下 VBA 函数,该函数在电子表格中被多次调用。有什么办法可以提高效率吗?

Function Fx(x As Double, _
                      c As Double)


Dim b As Double
Dim g As Double

Dim alpha As Double
Dim beta As Double
Dim gamma As Double
Dim delta As Double


alpha = 3.1
beta = -0.15
gamma = 0.78
delta = 0.12

'derive implied b and g

b = Exp(alpha + beta * c * (1 + c))
g = Exp((gamma + delta * c) * c)

Fx = (Log(((g - 1) * b + (1 - b * g) * b ^ x) / (1 - b))) / Log(b * g)

out:

End Function
excel vba
1个回答
0
投票

该函数的计算只能进行最低限度的优化。如果计算有任何效率低下的地方,可能是在不同的地方。

Function Fxa(x As Double, _
             c As Double)

Dim b As Double
Dim bg As Double
Dim lbg As Double

Dim alpha As Double
Dim beta As Double
Dim gamma As Double
Dim delta As Double

alpha = 3.1
beta = -0.15
gamma = 0.63   ' 0.78
delta = -0.03  ' 0.12

'derive implied b and g

b = alpha + beta * c * (1 + c)
lbg = alpha + gamma * c + delta * c ^ 2
b = Exp(b)
bg = Exp(lbg)
Fxa = Log((bg - b + (1 - bg) * b ^ x) / (1 - b)) / lbg

out:
End Function
© www.soinside.com 2019 - 2024. All rights reserved.