【问题标题】:Recording time of "X" amount of indicators in a loop循环记录“X”个指标的时间
【发布时间】:2020-09-29 14:58:36
【问题描述】:

我正在记录 600 只不同的股票,不同的买入/卖出评级,我有这个宏要运行并记录 - 平均 - 每只股票需要多少秒。这很好并且有效,但现在我想看看一组 20 只股票需要多长时间。我希望能够记录20个股票,记录每只股票花了多长时间。我需要这个宏来遍历所有 600 只股票,同时记录记录 20 只股票需要多长时间。如何让宏告诉我运行 600 次中的 20 次需要多长时间?我希望时间值从“C30”开始,然后每个下一个值将向下偏移 1 个单元格

'
' Repeat Macro
'
'
Start = Timer

  Dim i As Integer
  
For i = 1 To 600

  Call Sheet4.SpinButton1_SpinDown
  DoEvents
  Application.Run "EikonRefreshWorkbook"
  DoEvents
  Application.Run "EikonRefreshWorkbook"
  DoEvents
  Call CopyPaste
  DoEvents

Next i

ElapsedTime = Format((Timer - Start) / (86400 * 600), "hh: mm: ss: ms ")
Range("C30").End(xlDown).Offset(1, 0).Value = ElapsedTime


    MsgBox "Indicators have been updated.", vbOKOnly

End Sub

【问题讨论】:

    标签: excel vba loops time record


    【解决方案1】:

    这应该可以满足您的需求。我建议添加工作表参考Cells

    我将除数设置为变量,因此如果您修改值,您不会忘记更改偏移计算中的值。

        Dim i As Long
        Dim start As Long
        Dim groupval as long
        groupval = 20 'Change this to change the group size
        start = Timer
        For i = 1 To 600
    
            Call Sheet4.SpinButton1_SpinDown
            DoEvents
            Application.Run "EikonRefreshWorkbook"
            DoEvents
            Application.Run "EikonRefreshWorkbook"
            DoEvents
            Call CopyPaste
            DoEvents
      
            If i Mod groupval = 0 Then
                Cells(30, 3).Offset((i / groupval) - 1).Value = Format((Timer - start) / (86400 * 600), "hh: mm: ss: ms ")
                start = Timer
            End If
      
        Next i
    
        MsgBox "Indicators have been updated.", vbOKOnly
    
    
    End Sub
    

    【讨论】:

    • 你是最棒的!完美运行
    猜你喜欢
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 2017-07-18
    • 2014-09-13
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多