我正在使用userform上的一些复选框,并检查用户是否已在我的代码中检查过它们。我遇到的问题是如何正确检查这种情况。我找到了几个例子,我想知道每个人可能会遇到麻烦。
例如,我看过几个片段使用:
If checkBox1.Value = "True" Then
或
If checkBox1.Value Then
或
If checkBox1 Then
这些之间有什么功能差异吗?看起来后者是最短,最简洁的应用程序,但是工程师的大脑在说我必须有其他两个案例的原因(尽管我使用的VBA越多,我就越不相信这个概念)。 / p>
您可以提供任何帮助或指导,我们将不胜感激。
答案 0 :(得分:0)
我会推荐第二个。最好明确指定对象的属性,而不是依赖于默认值。将布尔值与True / False进行比较是没有意义的,因为它已经是True或False,并且将它与String值(在不同区域中会有所不同)相比较少。
答案 1 :(得分:0)
在这种情况下,它们都是相同的,可以互换使用。但是,我只会使用第一个或第二个选项。
checkBox1
基本上是不完整的,VBA会自动假定(对你而言)你指的是它的值,因此"完成" (在运行时)您的代码到checkBox1.Value
。这需要时间,并且可能会使代码速度变慢(即使这几乎不可察觉)。
对于大多数程序员来说,第二个选项是首选选项,因为if
语句会评估某些内容是True
还是False
。由于复选框的.Value
已经是True
或False
,因此第一个选项不必要很长。 checkbox1的值是alredy True
。那么,为什么要将它与True
进行比较?
与此同时,我总是喜欢使用第一个选项,因为它使代码更容易为我阅读(个人偏好)。
所以,我说选项1或2:这是你的选择。