【问题标题】:Remember original value after running code运行代码后记住原始值
【发布时间】:2021-09-15 14:16:28
【问题描述】:

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

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

在这段代码运行之后,我想将 Sheet Y B8、B9 和 I3 中的值恢复到它们在代码运行之前的原始值。我该怎么办?

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$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")
End Sub

【问题讨论】:

  • 先把原始值存入数组,最后再写回来?

标签: excel vba copy-paste


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    相关资源
    最近更新 更多