我想在excel上做一个货币转换器。
Cell B1 = exchange rate
cell B2 = base currency amount
cell B3 = counter currency amount.
例子:
B1 = 1.3, B2 = Euro amount, B3 = USD amount.
所有三个单元格都通过一个公式相互连接B3 = B1*B2
。
我希望能够在 处输入一个值B2
,并B3
自动更新(B3 = B2*B1)
当我在 处输入值B3
并B2
更新自身时(B2 = B3/B1)
。
下面的代码是我能想到的最好的代码,但是它会产生堆栈空间不足的错误,因为(我猜,它进入了一个无限循环(B2
更新时,B3
更新自身,进而B2
再次更新......)。
有什么建议吗?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim EUR As Range
Set EUR = Range("b2")
Dim USD As Range
Set USD = Range("b3")
If Not Application.Intersect(EUR, Range(Target.Address)) Is Nothing Then
Sheets("sheet1").Range("B3").Value = Range("B2") * Range("B1")
Else
If Not Application.Intersect(USD, Range(Target.Address)) Is Nothing Then
Sheets("sheet1").Range("B2").Value = Range("B3") / Range("B1")
End If
End If
End Sub