首页 > 解决方案 > 宏以一定时间间隔重复并在电子表格最小化时工作

问题描述

我写了下面的VBA。它正在工作,但有以下问题。任何帮助,将不胜感激。问题:

  1. 它不会完全按照指定的时间间隔粘贴。
  2. 当电子表格最小化时它停止工作 - 并在 Worksheets("IV track").Select 上给出错误。
    Sub CopyPaste()
    '
    '   Workbooks("Option Chain.xlsm").Activate
        Worksheets("IV track").Select
        Range("A14").Select
        Range(Selection, Selection.End(xlToRight)).Select
        Selection.Copy
        Range("A19").End(xlDown).Offset(1, 0).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Application.CutCopyMode = False
        Sheets("Nifty Analysis").Select
        Range("B4").Select
        Call Test
    End Sub
    
    Sub Test()
    Application.OnTime Now + TimeValue("00:15:00"), "CopyPaste"
    End Sub

标签: vbaminimized

解决方案


Excel最小化时的错误是因为它前面Worksheets(...)有一个隐含的。ActiveWorkbook.当您最小化 Excel 时,没有任何工作簿处于活动状态,这意味着您正试图从未定义的工作簿中获取电子表格。

您的宏没有在正确的时间运行的原因是这并不Application.OnTime意味着在准确的时间运行。如果有任何东西阻止 Excel 运行宏,它不会立即运行它。您给它的时间是它运行宏的最早时间,而不是保证时间。


推荐阅读