首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在VBA中,True和msoTrue有什么区别?

在VBA中,True和msoTrue有什么区别?
EN

Stack Overflow用户
提问于 2022-06-13 22:02:42
回答 1查看 400关注 0票数 0

我正在使用一些VBA代码处理一个模型,该代码隐藏/显示形状:

Worksheets("Sheet1").Shapes("shape1").Visible = msoTrue

以前的开发人员在整个模型中使用了msoTrue,而不是True,这正是我在这类应用程序中通常使用的。

我试图理解True和msoTrue之间的区别,并想知道我是否应该使用其中一种。我知道两者相等-1。

EN

回答 1

Stack Overflow用户

发布于 2022-06-13 22:11:03

msoTrue是一个计算为-1的常量。在VBA中,它将是一个Long类型。

TrueBoolean类型。当转换为Long时,它的计算值也是-1。

试试这个:

代码语言:javascript
运行
复制
Debug.Print msoTrue '---> -1
Debug.Print True '---> True
Debug.Print Clng(True) '---> -1

在条件测试中使用msoTrue而不是True有点奇怪,但是-1、msoTrueTrue都是真正的条件。

我应该补充的是,Visibility对象的Shape属性不是Boolean类型,而是枚举msoTriStateLong。如果您的问题与Shapes特别相关,而且只与msoTrue有关,那么,是的,更正确的语法将是msoTrue

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72609527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档