You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA需求:修改代码实现C2变动时自动更新E3值

解决方案

修改后的VBA代码如下:

Private Sub Worksheet_Change(ByVal Target As Range)
    ' 确保即使出错,退出时也能重新启用事件
    On Error GoTo errExit
    Application.EnableEvents = False
    
    Dim SpotRate As Double
    SpotRate = Me.Range("H2").Value

    ' 处理C3输入,更新E3
    If Target.Address = "$C$3" Then
        If Target.Value <> "" Then
            Range("E3").Value = Target.Value * SpotRate
        Else
            Range("E3").ClearContents
        End If
    ' 处理E3输入,更新C3
    ElseIf Target.Address = "$E$3" Then
        If Target.Value <> "" Then
            Range("C3").Value = Target.Value / SpotRate
        Else
            Range("C3").ClearContents
        End If
    ' 处理C2或H2变动,更新E3(保持C3不变)
    ElseIf Target.Address = "$C$2" Or Target.Address = "$H$2" Then
        If Range("C3").Value <> "" Then
            Range("E3").Value = Range("C3").Value * SpotRate
        End If
    End If

errExit:
    Application.EnableEvents = True
End Sub

关键修改说明

  • 新增对$C$2和$H$2单元格变动的判断:由于C2的下拉选择会触发H2汇率值变化,这两个单元格的变动都需要触发E3的更新
  • 当C2/H2变动时,仅在C3有值的情况下,用C3当前值乘以最新汇率计算E3,完全保留C3原有数值
  • 保留原有C3和E3互相转换的核心逻辑,不影响原有功能

内容的提问来源于stack exchange,提问作者user22168531

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:12:56