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

Excel VBA运行代码后如何恢复Sheet Y指定单元格的原始值

实现思路

在修改工作表Y的B8、B9、I3单元格前,先将三个单元格的原始值存储到临时变量中,待所有计算逻辑执行完毕后,再把临时变量中存储的原始值回写到对应单元格即可完成恢复,原有计算逻辑无需调整。

修改后完整代码
Sub Klima()
    ' 定义变量存储Y表目标单元格原始值
    Dim origB8 As Variant, origB9 As Variant, origI3 As Variant
    
    ' 代码执行前先缓存原始值
    origB8 = Sheets("Y").Range("B8").Value
    origB9 = Sheets("Y").Range("B9").Value
    origI3 = Sheets("Y").Range("I3").Value
    
    ' 原有业务逻辑保持不变
    Sheets("X").Range("M5").Copy Destination:=Sheets("Y").Range("B8")
    Sheets("X").Range("M6").Copy Destination:=Sheets("Y").Range("B9")
    Sheets("X").Range("M7").Copy Destination:=Sheets("Y").Range("I3")
    Range("M8").Value = Evaluate("(SUM(Y!$H$18:$H$2897)*60)/1000")
    Sheets("X").Range("N5").Copy Destination:=Sheets("Y").Range("B8")
    Sheets("X").Range("N6").Copy Destination:=Sheets("Y").Range("B9")
    Sheets("X").Range("N7").Copy Destination:=Sheets("Y").Range("I3")
    Range("N8").Value = Evaluate("(SUM(Y!$H$18:$H$2897)*60)/1000")
    
    ' 执行完毕恢复Y表原始值
    Sheets("Y").Range("B8").Value = origB8
    Sheets("Y").Range("B9").Value = origB9
    Sheets("Y").Range("I3").Value = origI3
End Sub
补充说明
  • 如果Y表的B8、B9、I3单元格存储的是公式而非固定值,只需要将缓存和回写时的.Value替换为.Formula即可保留原有公式,不会变成静态值。
  • 该方案不会修改原有计算逻辑,X表M8、N8的计算结果和修改前完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:09:02