gpt4 book ai didi

VBA excel - 当任一单元格更改时,基于彼此更改两个单元格的值

转载 作者:行者123 更新时间:2023-12-04 18:10:32 27 4
gpt4 key购买 nike

我试图在 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

最佳答案

如果崩溃确实是由于无限循环引起的,您可以尝试在宏的开头禁用 Excel 事件,然后在最后重新启用它们。

片段,基于 this post :

Application.EnableEvents = False

' Your code

Application.EnableEvents = True

关于VBA excel - 当任一单元格更改时,基于彼此更改两个单元格的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14453372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com