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
相关产品推荐
相关产品推荐

