|
|
1
114
使用 Wait method :
或(适用于Excel 2010及更高版本):
|
|
2
58
或者,对于64位系统,请使用:
在宏中这样调用它:
|
|
|
3
38
而不是使用:
我更喜欢:
因为之后读起来容易多了。 |
|
|
4
17
|
|
5
12
kernel32.dll中的Sleep声明在64位Excel中不起作用。这将有点笼统:
|
|
|
6
5
暂停VBA执行的完整指南背景信息和说明
所有Microsoft Office应用程序都在与主用户界面相同的线程中运行VBA代码。这意味着,只要VBA代码不调用
这就是为什么让VBA暂停执行的最佳方法是结合这两种方法,使用
通用解决方案
这将暂停宏3.5秒,而不会冻结应用程序或导致CPU过度使用。为此,只需将以下代码复制到任何标准代码模块的顶部即可。
如果应用程序冻结不是问题,例如非常短的延迟或不希望用户交互,最好的解决方案是调用
重要提示:
暂停VBA执行的替代方案和OP的更好解决方案
实际上,没有必要让VBA代码在后台不间断地运行,以便每秒重新计算工作簿。这是一个典型的任务示例,也可以通过以下方式实现
一份详细的指南,包括一个复制粘贴解决方案,用于重新计算任何
使用的最大优势
此线程中所有其他解决方案的荟萃分析:
此外,许多提出的解决方案还有其他问题:
概述
其他问题
|
|
7
3
|
|
|
8
2
大多数提出的解决方案都使用Application。等待,它不考虑自当前秒计数开始以来已经过去的时间(毫秒),因此 .
使用此功能测试任何睡眠功能: (打开调试即时窗口:CTRL+G)
|
|
|
9
2
等待和睡眠功能会锁定Excel,在延迟结束之前,您无法执行任何其他操作。另一方面,循环延迟并不能给你一个确切的等待时间。 所以,我做了一个变通方法,将这两个概念结合起来。它一直循环到你想要的时间。
你只需要拨打Waste10Sec,在那里你需要延迟 |
|
|
10
1
以下是睡眠的替代方案:
|
|
|
11
1
|
|
|
12
1
|
|
|
13
0
我通常使用 计时器 函数暂停应用程序。将此代码插入您的
|