亲,不要把代码放到Thisworkbook的Open事件里即可。
如下图,打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧Thisworkbook上双击,右侧的代码剪切下来。
然后在左侧空白处点击右键,“插入”,“模块”。右侧空白处粘贴代码,去掉第一行和最后一行。
可以在你的循环代码中加一句话 DoEvents
运行代码后,虽然Excel马上就获得了控制权,但是实际上你的代码还在后台运行。
这样你就可以在需要的时候随时选择VBA那边的菜单“运行 - 中断”,你的代码就可以中断下来了……
但是,采用这个方法有一点需要注意,就是当你的代码真正运行结束的时候,最好是能够报一个提示框。要不然它在后台一直运行,你也不知道它到底什么时候结束。
ApplicationWait
方法
暂停运行宏,直到一特定时间才可继续执行。如果到达指定时间,则该值为
True。
语法
表达式Wait(Time)
表达式 一个代表 Application 对象的变量。
参数
名称
必选/可选
数据类型
说明
Time
必选
Variant
希望宏继续执行的时间(以 Microsoft Excel
日期格式表示)。
返回值
Boolean
说明
Wait 方法暂停 Microsoft Excel 的所有 *** 作,并且,Wait
起作用时可能禁止您对计算机做其他 *** 作。不过,后台 *** 作(如打印和重新计算)将继续进行。
本示例暂停一个正在执行的宏,到今天下午 6:23 时才可继续执行。
Visual Basic for Applications
ApplicationWait "18:23:00"
本示例暂停一个正在执行的宏约 10 秒钟。
Visual Basic for Applications
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
ApplicationWait waitTime
本示例显示一条消息,用以表明是否经过 10 秒钟。
Visual Basic for Applications
If ApplicationWait(Now + TimeValue("0:00:10")) Then
MsgBox "Time expired"
End If
Sub t()
a = ""
Do While Not (a > 0 And a < 100)
a = InputBox("请输入0到100的数:", "输入数据")
Loop
[A1] = a
End Sub
参考一下。
使用VBA即可,代码如下:
Private Sub Workbook_Open()Dim my_Range As RangeFor Each my_Range In Worksheets(1)UsedRangeIf my_RangeColumn = 3 And my_Range = Date ThenMsgBox "到期了"End IfNextEnd Sub
以上就是关于excel vba如何设置一个按钮暂停/运行全部的内容,包括:excel vba如何设置一个按钮暂停/运行、笔记本没有pause键,在excel vba已经运行时如何暂停其运行、vba 怎么停止application.wait等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)