【问题标题】:VBA - Trying to refresh data every second and also store that value in a new cell every refreshVBA - 尝试每秒刷新一次数据,并在每次刷新时将该值存储在一个新单元格中
【发布时间】:2020-07-26 00:17:26
【问题描述】:

我正在尝试各种方法来刷新 B4:B419 中的随机整数,同时将 F1 的输出存储在 F 列末尾的新单元格中。运行 RunAll 只会刷新 B4:B419 中的数据并且不会连续粘贴 F1 的新值。

Sub Calculate_Range()

    Sheets("Shoe Simulation").Range("B4:B419").Calculate
    
    Dim last_row As Long
    
    last_row = Sheets("EV").Cells(Rows.Count, "F").End(xlUp).Row
    
    Sheets("EV").Range("F1").Copy
    
    Sheets("EV").Cells(last_row + 1, "F").PasteSpecial Paste:=xlPasteValues
    

End Sub



Sub Timeing()

    Application.OnTime DateAdd("s", 1, Now), "Calculate_Range"
    
End Sub

Sub RunAll()

    Call Calculate_Range
    
    Call Timeing
    
End Sub

【问题讨论】:

    标签: excel vba simulation timing


    【解决方案1】:

    我没有足够的代表发表评论,但您是否想让代码连续不间断地运行?

    之所以不能连续运行,是因为 RunAll 子程序只调用每个函数一次。 它调用calculate_Range,它运行一次,然后调用Timeing(),它也让Calculate_Range 运行一次。 如果您将 Call Timeing() 添加到 Calculate_Range 子的末尾,那么它将在 2 之间连续循环。请注意,这实际上会造成无限循环。

    【讨论】:

    • 另一种方法是将Application.OnTime DateAdd("s", 1, Now), "Calculate_Range" 添加到您的 Sub Calculate_Range() 的末尾
    猜你喜欢
    • 2014-06-01
    • 2022-07-06
    • 2016-01-23
    • 1970-01-01
    • 2016-03-21
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多