我在text3文本显示的时候,显示的是数值行,但是数值前面有个0,例如:07161.20这样的格式,这个0是减去&H33得到的,怎么能够去掉呢?Dim inbuff() As Byte
Dim X As Integer ''''''''''''''''''''''''''''''''''''''''定义为全局变量,那么x就会记住以前的,反之,若是定义在oncommon里面,每次触发事件都会重新开始
Dim i As Integer
Dim nowstr(60) As Byte
Dim strHex As String '全局变量,用于累加接受的字符串
Dim NUM As Integer
Private Sub Combo1_Click()    On Error GoTo uerror      '发现错误跳转到错误处理
        Select Case Combo1.Text
  
             Case "COM1"
                    NUM = 1
             Case "COM2"
                    NUM = 2
             Case "COM3"
                    NUM = 3
             Case "COM4"
                    NUM = 4
            Case "COM5"
                    NUM = 5
            Case "COM6"
                    NUM = 6
            Case "COM7"
                    NUM = 7
            Case "COM8"
                    NUM = 8
            Case "COM9"
                    NUM = 9
  End Select
uerror:If err.Number = 8005 Then
    msg$ = "串口已打开!"          '错误显示
    Title$ = "错误"
    XX = MsgBox(msg$, 64, Title$)  '64标示显示警告图标
   End IfEnd SubPrivate Sub ComClear_Click()
     List1.Clear
End Sub
Private Sub ComOpen_Click() On Error GoTo err    If ComOpen.Caption = "打开串口" Then
        MSComm1.CommPort = NUM
        MSComm1.PortOpen = True
        ComOpen.Caption = "关闭串口"
        Shape1.FillColor = &HC000&
        Combo1.Locked = True '''''''''''''''''''''''''''用于保证下拉框在串口打开时不被改变,锁定属性
      Select Case Combo3
      
             Case "无None"
                  MSComm1.Settings = Str(Combo2) + "N" + Str(Combo4) + Str(Combo5)
             Case "奇Odd"
                    MSComm1.Settings = Str(Combo2) + "O" + Str(Combo4) + Str(Combo5)
             Case "偶Even"
                    MSComm1.Settings = Str(Combo2) + "E" + Str(Combo4) + Str(Combo5)
          End Select
     Else
            MSComm1.PortOpen = False
            Shape1.FillColor = &HFF0000
            ComOpen.Caption = "打开串口"
            Combo1.Locked = False '''''''''''''''''''''''''''用于保证下拉框在串口打开时不被改变,解除锁定属性
      End Iferr:
If err.Number = 8002 Then
   XX = MsgBox("无效端口!", 64, "提示")
   End If
 
 
End SubPrivate Sub Form_Load() 'MSComm1初始化
    Dim a As Integer
    'MSComm1.CommPort = 5
    'MSComm1.Settings = "1200,e,8,1"
    MSComm1.InBufferSize = 1024
    MSComm1.InputMode = comInputModeBinary
    MSComm1.RThreshold = 1
   ''MSComm1.PortOpen = True
    MSComm1.OutBufferCount = 0      '清除发送缓冲区
    MSComm1.InBufferCount = 0       '清除接收缓冲区
    
    Do While a < 9
        a = a + 1
        Combo1.AddItem "COM" & a
     Loop
   
    Combo2.AddItem "12800"
    Combo2.AddItem "11520"
    Combo2.AddItem "9600"
    Combo2.AddItem "4800"
    Combo2.AddItem "2400"
    Combo2.AddItem "1200"
    Combo2.AddItem "600"
    
    Combo3.AddItem "无None"
    Combo3.AddItem "奇Odd"
    Combo3.AddItem "偶Even"
    
    Combo4.AddItem "4"
    Combo4.AddItem "5"
    Combo4.AddItem "6"
    Combo4.AddItem "7"
    Combo4.AddItem "8"
    
    Combo5.AddItem "1"
    Combo5.AddItem "2"
    Combo1.ListIndex = 2
    Combo2.ListIndex = 5
    Combo3.ListIndex = 2
    Combo4.ListIndex = 4
    Combo5.ListIndex = 0
'Call ComOpen_Click
End SubPrivate Sub List1_DblClick()
  List1.Clear
End Sub Private Sub MSComm1_OnComm()       
    Select Case MSComm1.CommEvent
           Case 2
        
        MSComm1.InputLen = 0 '''''读取接收缓冲区中全部的内容
            
             inbuff = MSComm1.Input
        
                 strHex = strHex & Right("0" & Hex(inbuff(0)), 2) & " "
        
                        
                         nowstr(X) = inbuff(0)
        
                              X = X + 1
                             
        
  If Right("0" & Hex(inbuff(0)), 2) = "16" Then
        xianshi
             End If
    End SelectEnd Sub
                           
Public Sub xianshi()    Dim vot1 As String
    Dim vot2 As String
    Dim vot3 As String
    Dim vot4 As String
         If Right("0" & Hex(nowstr(0)), 2) = "68" And Right("0" & Hex(nowstr(8)), 2) = "81" Then
             vot1 = Right("0" & Hex(nowstr(12)), 2)
                vot2 = Right("0" & Hex(nowstr(13)), 2)
                 vot3 = Right("0" & Hex(nowstr(14)), 2)
                  vot4 = Right("0" & Hex(nowstr(15)), 2)
                  Text1 = vot4 & " " & vot3 & " " & vot2 & " " & vot1
                  Text2 = Hex(Val("&H" & vot4) - &H33) & Hex(Val("&H" & vot3) - &H33) _
                            & Hex(Val("&H" & vot2) - &H33) & "." & Hex((Val("&H" & vot1) - &H33)) '''''''''''''''''''''''''''先把字符串按照16进制显示,然后转成数值型,然后用hex函数16进制显示
            
                  Text3 = (Val("&H" & vot4) - &H33)
                    
                 End If
              If List1.ListCount > 20 Then
       
                      List1.RemoveItem (0)
            
                     End If
                             List1.AddItem "接收:" & strHex ''''''''''''''列表框显示报文数据
        
                         strHex = ""    ''''''''''''''''''''''''清空接受内存,每次都是最新的
      
                                 X = 0 '''''''''''''''''''''''''清空定义的数组个数
           
    MSComm1.OutBufferCount = 0      '清除发送缓冲区
    MSComm1.InBufferCount = 0       '清除接收缓冲区
End Sub
Private Sub ComCvot_Click()
        Dim OutBuffer() As Byte
        Dim q As Integer
        Dim p As Integer
        Dim room As String
        Dim SendStr As String
        room = "6858000000000068010243c33116"
        ReDim OutBuffer(Len(room))
     On Error GoTo err
     
    For q = 1 To Len(room) Step 2
    
                 OutBuffer(p) = Val("&H" & Mid(room, q, 2))
         
                   p = p + 1
                   
                         SendStr = SendStr & Mid(room, q, 2) & " "
           Next
    
              MSComm1.Output = OutBuffer
           
                 List1.AddItem "下发:" & SendStr
                    SendStr = " "
                         Text1 = ""
                         Text2 = ""
                         Text3 = ""
err:
        If err.Number = 8018 Then
          XX = MsgBox("请先打开串口!", 64, "提示")
             End If
End Sub