Function WaveLength(Height1, Time1) As Double

Dim G As Double, PAI As Double
Dim WL0 As Currency, WL1 As Currency, WL2 As Currency

G = 9.80665
PAI = WorksheetFunction.Pi()

WL0 = G * Time1 * Time1 / (2# * PAI)
WL1 = WL0
WL2 = WL0 * WorksheetFunction.Tanh(2 * PAI * Height / WL1)


Do
WL2 = WL0 * WorksheetFunction.Tanh(2 * PAI * Height / WL1)

If Abs((WL2 - WL1) / WL1) < 0.001 Then Exit Do

WL1 = 0.5 * (WL1 + WL2)
Loop

WaveLength = WL2

End Function
とりあえずこういった感じで修正したものの実行するとオーバーフローするみたいです。
何が原因でしょうか?