首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VBA Cbool是什么意思?(实际英文)

VBA Cbool是什么意思?(实际英文)
EN

Stack Overflow用户
提问于 2015-11-08 22:30:19
回答 3查看 1.1K关注 0票数 2

我似乎听不懂第二句话:

代码语言:javascript
运行
复制
 If Not CBool(GetKeyState(vbKeyRButton) And &H8000)

请您用简单的英语解释一下这句话的意思好吗?我所能理解的就是“如果不是”和“我对这里所有的VBA奇才有很强的信心!”请帮帮我!

完整的代码如下:

代码语言:javascript
运行
复制
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not CBool(GetKeyState(vbKeyRButton) And &H8000) Then

    If IsEmpty(strBoardSize) Then
        Exit Sub
    End If
Else
End if
Sub end

strBoardSize是表的大小,以前是

代码语言:javascript
运行
复制
Dim strBoardSize as string
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-08 22:41:47

根据这个页面,CBool方法接受任何输入,并尝试对值进行布尔比较。

所以,用英语:

代码语言:javascript
运行
复制
If the value returned by (GetKeyState(vbKeyRButton) And &H8000) is not true, then:
   If IsEmpty(strBoardSize) Then
       Exit Sub
   End If
Else
End if

另一种看待这一问题的方法是:

代码语言:javascript
运行
复制
Dim LCompare as Boolean
LCompare = CBool(GetKeyState(vbKeyRButton) And &H8000) 'Sets the value returned from CBool in LCompare
If Not LCompare Then
   If IsEmpty(strBoardSize) Then
       Exit Sub
   End If
Else
End if

这个其他条款解释了GetKeyState的输入是什么,以及它们对按位运算符的影响。

希望这能帮点忙..。

票数 2
EN

Stack Overflow用户

发布于 2015-11-09 00:37:21

GetKeyState是https://msdn.microsoft.com/en-us/library/windows/desktop/ms646301(v=vs.85).aspx中描述的Windows函数。它返回一个整数,并如前所述,“如果高阶位为1,则键被关闭;否则,则为up。”(在这里,感兴趣的键是鼠标右键,由常量vbKeyRButton指定。)

&H 8000是一个只有高阶位集的整数,因此And操作返回0或&H 8000。&H 8000是用于高阶位的掩码(在白话中)。

CBool函数将0转换为False,将任何非零值转换为True,因此,如果按下键,则返回True。

票数 2
EN

Stack Overflow用户

发布于 2015-11-08 22:41:25

CBool的字面意思是“转换为布尔型”(它是一个强制转换),因为GetKeyState和&H 8000不是布尔型,它需要转换或转换。

代码语言:javascript
运行
复制
If Not CBool(GetKeyState(vbKeyRButton) And &H8000)

因此,对于您的代码来说,这意味着:

代码语言:javascript
运行
复制
If vbKeyRButton AND &H8000 are both false then ...

剩下的代码,

代码语言:javascript
运行
复制
If IsEmpty(strBoardSize)

这将检查字符串strBoardSize是否为空。所以,如果strBoardSize是空的,转到下一行代码,否则结束If语句,然后转到there(但是这里什么都没有)

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

https://stackoverflow.com/questions/33599782

复制
相关文章

相似问题

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