Vba 有一个Excel自动滚动宏;有没有办法在上面放个计时器?

Vba 有一个Excel自动滚动宏;有没有办法在上面放个计时器?,vba,excel,Vba,Excel,下面是关于自动滚动宏的内容: Sub Macro12() Dim lastRow As Long, i As Long lastRow = Range("A" & Rows.Count).End(xlUp).Row For i = 1 To 23 Step 2 Cells(i, 1).Select ActiveWindow.SmallScroll down:=2 Application.Wait (Now + Ti

下面是关于自动滚动宏的内容:

Sub Macro12()
    Dim lastRow As Long, i As Long
    lastRow = Range("A" & Rows.Count).End(xlUp).Row

    For i = 1 To 23 Step 2
        Cells(i, 1).Select
        ActiveWindow.SmallScroll down:=2
        Application.Wait (Now + TimeValue("0:00:02")) 'Wait two seconds before 
        continuing.
        If i = lastRow - 2 Or i = lastRow - 1 Then
            i = 0
            Cells(1, 1).Select
        End If
    Next i
    Debug.Print (i)
End Sub
问题是它最终会冻结并崩溃。我试图找到的是一个计时器代码,它会告诉它每60-90秒运行一次宏。IE:运行Macro12,然后90秒内不运行,再次运行,重复冲洗

我该怎么办

编辑:

此代码适用于:

Sub ReRunMacro()
    Dim xMin As String
    Dim lastRow As Long, i As Long
    lastRow = Range("A" & Rows.Count).End(xlUp).Row

    For i = 1 To 13 Step 2
        Cells(i, 1).Select
        ActiveWindow.SmallScroll down:=2
        Application.Wait (Now + TimeValue("0:00:02"))
        If i = lastRow - 2 Or i = lastRow - 1 Then
            i = 0
            Cells(1, 1).Select
        End If
    Next i
    Debug.Print (i)

    xMin = GetSetting(AppName:="Kutools", Section:="Macro", Key:="min", Default:="")
    If (xMin = "") Or (xMin = "False") Then
        xMin = Application.InputBox(prompt:="Please input the interval time you need to repeat the Macro", Title:="Kutools for Excel", Type:=2)
        SaveSetting "Kutools", "Macro", "min", xMin
    End If

    If (xMin <> "") And (xMin <> False) Then
        Application.OnTime Now() + TimeValue("0:" + xMin + ":0"), "ReRunMacro"
    Else
        Exit Sub
    End If

End Sub
Sub-ReRunMacro()
Dim xMin As字符串
昏暗的最后一排一样长,我一样长
lastRow=范围(“A”和Rows.Count).End(xlUp).Row
对于i=1至13,第2步
单元格(i,1)。选择
ActiveWindow.small向下滚动:=2
Application.Wait(现在+时间值(“0:00:02”))
如果i=lastRow-2或i=lastRow-1,则
i=0
单元格(1,1)。选择
如果结束
接下来我
调试打印(i)
xMin=GetSetting(AppName:=“Kutools”,Section:=“Macro”,Key:=“min”,默认值:=”)
如果(xMin=”“)或(xMin=“False”),则
xMin=Application.InputBox(提示:=“请输入重复宏所需的间隔时间”,标题:=“Kutools for Excel”,类型:=2)
保存设置“Kutools”、“Macro”、“min”、xMin
如果结束
如果(xMin“”)和(xMin False),则
Application.OnTime Now()+时间值(“0:+xMin+”:0”),“重新编译”
其他的
出口接头
如果结束
端接头

但它没有循环回到第一行(或A1),而是继续运行。是否需要一个简单的
范围(“A1”)。选择
在再次运行自动滚动之前执行循环的技巧?

是否查看了如何安排宏?有一点,但我不完全确定这是否是我想要的,或者是否可以在一个宏中运行所有宏。我更喜欢后者,但是如果安排一个宏是唯一的方法,那么我会走这条路线。大概你希望它从上次停止的地方开始?我能问一下你的目标是什么吗?所以我们有一张桌子在店里陈列。如果我们有四张以上的桌子,床单就会被剪掉。其目标是让图纸自动滚动(目前是这样)显示所有表格,然后循环回顶部。我希望有一个计时器可以防止excel崩溃,因为我的代码目前是一个无限循环。另外,我的想法是通过谷歌文档来运行它,所以我认为运行VBS计时器是行不通的。