在 运行 代码后记住原始值

Remember original value after running code

我正在尝试创建一个按钮,该按钮 运行 是 Excel 中相当简单的 VBA 代码,但我不确定如何处理最后一部分。

基本上我的代码所做的是复制 3 个不同的单元格,运行 一个计算,然后复制其他 3 个单元格,然后在不同的单元格中进行相同的计算。

在那段代码 运行 之后,我想将 Sheet Y B8、B9 和 I3 中的值恢复为代码 [=21] 之前的原始值=].我该怎么做?

Sub Klima()
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:$H97)*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:$H97)*60)/1000")
End Sub

将您的值存储在一个变量中,进行计算并恢复它们。

Option Explicit 

Public Sub Remember()
    With Sheets("Y")
        'store values in variables
        Dim ValB8 As Variant
        ValB8 = .Range("B8").Value
        Dim ValB9 As Variant
        ValB9 = .Range("B9").Value
        Dim ValI3 As Variant
        ValI3 = .Range("I3").Value
    
        'do your calculation
        Klima
        
        'restore original values
        .Range("B8").Value = ValB8 
        .Range("B9").Value = ValB9 
        .Range("I3").Value = ValI3 
    End With
End Sub