Vba 在工作表和宏中连续循环以停止操作
我是vba的新手。。 标题可能有点误导,但本质上我是从第1、2、3和4页开始的 我需要创建一个宏来循环浏览电子表格,有点像powerpoint演示文稿,间隔10秒 我试着用谷歌搜索网页,但是只能找到这个 子显示循环 'Application.ScreenUpdate=True默认情况下为TrueVba 在工作表和宏中连续循环以停止操作,vba,excel,Vba,Excel,我是vba的新手。。 标题可能有点误导,但本质上我是从第1、2、3和4页开始的 我需要创建一个宏来循环浏览电子表格,有点像powerpoint演示文稿,间隔10秒 我试着用谷歌搜索网页,但是只能找到这个 子显示循环 'Application.ScreenUpdate=True默认情况下为True Dim wkb As Workbook Set wkb = ThisWorkbook wkb.Sheets("Sheet1").Activate Application.Wait Now + Tim
Dim wkb As Workbook
Set wkb = ThisWorkbook
wkb.Sheets("Sheet1").Activate
Application.Wait Now + TimeSerial(0, 0, 10)
wkb.Sheets("Sheet2").Activate
Application.Wait Now + TimeSerial(0, 0, 10)
wkb.Sheets("Sheet3").Activate
Application.Wait Now + TimeSerial(0, 0, 2)
wkb.Sheets("Sheet1").Activate
Application.Wait Now + TimeSerial(0, 0, 10)
End Sub
我需要帮助,使它无休止地连续循环从表1-3和一个宏来停止连续循环
希望他们是善良的灵魂在那里帮助我。
非常感谢你
编辑:最终可以将代码修改为此。。它重复x次。
编辑有没有办法暂停正在运行的宏?如何修改代码
Sub DisplayLoop()
'Application.ScreenUpdating = True its true by default
Dim I
For I = 1 To 20
Dim wkb As Workbook
Set wkb = ThisWorkbook
wkb.Sheets("Sheet1").Activate
Application.Wait Now + TimeSerial(0, 0, 2)
wkb.Sheets("Sheet2").Activate
Application.Wait Now + TimeSerial(0, 0, 2)
wkb.Sheets("Sheet3").Activate
Application.Wait Now + TimeSerial(0, 0, 2)
wkb.Sheets("Sheet1").Activate
Application.Wait Now + TimeSerial(0, 0, 2)
Next I
End Sub
非常基本且不专业的方式:
Sub DisplayLoop()
Dim wkb As Workbook
Set wkb = ThisWorkbook
RestartX:
wkb.Sheets("Sheet1").Activate
Application.Wait Now + TimeSerial(0, 0, 2)
wkb.Sheets("Sheet2").Activate
Application.Wait Now + TimeSerial(0, 0, 2)
wkb.Sheets("Sheet3").Activate
Application.Wait Now + TimeSerial(0, 0, 2)
' if you have following two lines macro will stop at sheet1 x2 time
wkb.Sheets("Sheet1").Activate
Application.Wait Now + TimeSerial(0, 0, 2)
GoTo RestartX
End Sub
这将起作用,但停止它可能是一个问题:。要停止此操作,请按Ctrl+Pause:我将使用DO循环:
Do
Switch to 1
wait
Switch to 2
etc
Loop Until StopCommand = True
然后在每张纸上,放置一个按钮,该按钮仅将StopCommand设置为True。您必须声明该布尔变量,以便所有人都可以看到它,并在开始循环之前将其设置为False。虽然全局变量有其缺点,但对于您正在执行的操作,它应该可以正常工作
它本身将完成循环,并在单击按钮后在最后一张幻灯片后退出;您只需将每个Activate和Wait语句封装在
If Not StopCommand Then
Activate...
Wait...
End If
这样,您就可以在本幻灯片的延迟结束后退出。您需要在书中的所有页或其中几个页上循环吗?嗨,陶思克,我只需要循环第1、2和3页。我设法修改了我的代码。请参阅我的编辑。现在我需要创建另一个模块来停止宏。是否可以将I=1设置为无穷大?您好,只是出于好奇,当另一个宏正在运行时,您是否可以单击该按钮?是否有方法暂停正在运行的宏?