大家看图片~~~数据是通过按仪器上面的按键显示在listview里面的
"+Err""-Err"是根据我自己设置误差范围显示出来代码:
    If Right$(data, 1) = Chr(10) Then '用串口调试知道数据最后一位其实是回车键
    If Mid$(data, 9, 1) = Chr(13) Then
       Dim nodeX As ListItem                   
       Set nodeX = ListView1.ListItems.Add()
       nodeX.Text = ListView1.ListItems.Count  '序号
       nodeX.SubItems(1) = Textcom1.Text       '测量值
       Dim p, l, m  As Double
       p = Val((Text1.Text) - Val(Text10.Text)) 'Text1为仪器显示的数据,Text10为设置标准的数据
       l = Val(Text19.Text)
       m = Val(Text20.Text)
       If p > l Then
       nodeX.SubItems(2) = "+Err"
       ElseIf p < m Then
       nodeX.SubItems(2) = "-Err"
       Else
       nodeX.SubItems(2) = FormatNumber(p, , vbTrue) '误差值
       End If
现在我需要的是统计出当出现正超差"+Err"和负超差"-Err"的个数 ,分别显示在text15,text16里面

解决方案 »

  1.   

        If Right$(data, 1) = Chr(10) Then '用串口调试知道数据最后一位其实是回车键 
        If Mid$(data, 9, 1) = Chr(13) Then 
          Dim nodeX As ListItem                  
          Set nodeX = ListView1.ListItems.Add() 
          nodeX.Text = ListView1.ListItems.Count  '序号 
          nodeX.SubItems(1) = Textcom1.Text      '测量值 
          Dim p, l, m  As Double 
          p = Val((Text1.Text) - Val(Text10.Text)) 'Text1为仪器显示的数据,Text10为设置标准的数据 
          l = Val(Text19.Text) 
          m = Val(Text20.Text) 
          If p > l Then 
          nodeX.SubItems(2) = "+Err" 
          text15=val(text15)+1
          ElseIf p < m Then 
          nodeX.SubItems(2) = "-Err"
          text16=val(text16)+1 
          Else 
          nodeX.SubItems(2) = FormatNumber(p, , vbTrue) '误差值 
          End If 
      

  2.   

    上面的数据我是设置标准值为20 上下限为2 所以超过22 显示"+Err"低于18显示"-Err"