【发布时间】:2014-10-13 08:58:52
【问题描述】:
我正在用 VBA 为 MS Excel 编写一个宏。在子例程中,我有一组要执行的特定任务要满足的条件。从运行时间和内存的角度来看,以下哪种方法是最佳的?
方法一:
If condition_1 then
If condition_2 then
If condition_3 then
....
End If
End If
End If
或
方法二:
If condition_1 And condition_2 And ..... then
....
End If
如果我有任何条件的 Else 语句,我必须采用方法 1 来实现它。但是我没有针对任何条件的 Else 语句,因此这两种方法在完成任务方面处于同等水平。我只是想知道在运行时和内存方面哪个更好?
【问题讨论】:
-
第一个更好。 VBA 不支持短路。 (although a
Select Casemay sometimes speed things up) -
@vba4all 感谢您的帮助。即使我在代码中将条件明确定义为
boolean变量,它不会短路吗? -
VBA 中没有短路 :)
-
@Sathish 无关紧要 - 它总是会检查每个表达式。所以方法 1 绝对是更好的解决方案,同样关于空检查等。
-
使用 and 方法,vba 会评估每个条件,因此速度较慢,但通常您甚至不会看到任何差异(取决于条件)。另外,考虑方法 Select Case...
标签: vba excel if-statement