这个类型不匹配问题怎么解决

来源:百度知道 编辑:UC知道 时间:2024/05/30 07:38:47
Private Sub Command2_Click()

Dim jy6 As Long
s6(0) = &HAA
s6(1) = &H82
s6(2) = &H3
s6(3) = &H3
※s6(4) = Hex(Val(Text13.Text)) And &HFF
※s6(5) = Hex(Val(Text13.Text)) / &HFF
jy6 = Val(s6(0)) + Val(s6(1)) + Val(s6(2)) + Val(s6(3)) + Val(s6(4)) + Val(s6(5)) - 256
Text17.Text = jy6 Mod 256
※s6(6) = Hex(jy6)
s6(7) = &H55

End Sub

这个程序是将text中输入的数值转换成十六进制后,高8位赋值给s6(5),低8位赋值给s6(4),s6(6)的内容是前面几个字节求和后取十六进制的低8位,运行后,用※标注的三句提示类型不匹配,我觉得我的类型转换没有错误啊,请各位帮帮忙。
这个数组是要下发给单片机的,如果不用hex函数,那么结果是十进制的,下发十进制的也可以吗,还是计算机会默认转换成字节发送?

hex返回的是字符串,不是数字

改成s6(4)=val(text13.text) and &HFF

下面的一样

把所有hex函数去掉,在你的程序里hex没有意义,只给你增加麻烦而已
因为不需要显示,只参与运算,而运算时没有进制之分,不管是1+2,&H1+&H2,&H1+2,1+&H2,通通等于3,一回事

除非用户输入的是16进制,那就这样
s6(4)=val("&H" & text13.text) and &HFF