首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

类型不匹配的有关问题

2013-02-17 
类型不匹配的问题本帖最后由 bcrun 于 2013-02-02 19:02:17 编辑Private Sub Form_Load()Dim JiaoYanHe As

类型不匹配的问题
本帖最后由 bcrun 于 2013-02-02 19:02:17 编辑

Private Sub Form_Load()
Dim JiaoYanHe As Long
Dim aa As Long

JiaoYanHe = Val("&h" & "4a") + Val("&h" & "4b")
Label1.Caption = Hex(JiaoYanHe) And &HFF
aa = Val("&h" & "4a")
Debug.Print Hex(aa)

Label2.Caption = Hex(aa) And &HFF
End Sub


为啥第一个label1可以正常的输出值,而label2却弹出说类型不匹配,表示非常纳闷,求大神帮忙咧
[解决办法]
Private Sub Form_Load()
Dim JiaoYanHe As Long
Dim aa As Long

JiaoYanHe = Val("&h" & "4a") + Val("&h" & "4b")
Label1.Caption = Hex(JiaoYanHe) And &HFF
aa = Val("&h" & "4a")
Debug.Print Hex(aa)

Label2.Caption = aa And &HFF ' 试试这样,hex(aa)返回的是字符串"4A",不能参加与运算(AND)。
End Sub

[解决办法]
改成 Label2.Caption ="&H" & Hex(aa) And &HFF
1楼已经回答了,hex()返回表示一个数的十六进制值的字符串。字符串不能参与逻辑运算(And Or Not)
首先,label1可以正常是因为,JiaoYanHe = Val("&h" & "4a") + Val("&h" & "4b")=149
Hex(JiaoYanHe)="149"(字符串),但是纯数字字符串参加运算vb会自动转换,label1是正常的,
label2不正常是因为Hex(aa)="4A",是字符串

热点排行