串口读取出来的数据怎样截取?

aciom 2015-11-07 09:16:41
0 MW +0039.754 mm
0 MW -00001.16 mm
0 MW +0039.754 mm
0 MW +0039.754 mm
0 MW +003.754 mm
0 MW -0039.754 mm
0 MW +0039.754 mm
0 MW -0009.754 mm
0 MW +0039.754 mm
0 MW +0039.754 mm
0 MW +0039.754 mm
大家好 ,上面是串口发送出来的数据,每次一行,前面的0MW是站号,后面测量长度和单位,现在我想只要截取长度数据该如何写呢?
下面是oncomm事件的代码,谢谢大家指点。
Private Sub MSComm2_OnComm()
Dim t1 As Long, com_String As String
Static i As Integer
t1 = Timer

Sleep 100
Select Case MSComm2.CommEvent
Case comEvReceive '收到 RThreshold定义的字符数1字节
MSComm2.RThreshold = 0
Do
DoEvents
Loop While Timer - t1 < 0.6 '延时时间
com_String = MSComm2.Input
MSComm2.RThreshold = 1
i = i + 1: If i > 255 Then i = 1
Cells(actiCell + 1, actiColumn) = com_String
' Cells(actiCell + 1, 0).Value = com_String

'Selection.Offset(0, 1).Select
'Application .Cells(3, i).Value = com_String
End Select
'ActiveWorkbook.SaveAs Filename:="C:\d1.xls"
End Sub
...全文
548 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2015-11-10
  • 打赏
  • 举报
回复
    '模拟一次测试数据'
com_String = "0 MW +0039.754 mm"
'下面是提取方式'
Dim a() As String
a = Split(com_String, " ")
If UBound(a) >= 2 Then
Debug.Print "长度=" & a(2)
End If

输出
长度=+0039.754
pipi20151001 2015-11-09
  • 打赏
  • 举报
回复
上次写过一个与你类似的功能,只是数据格式与你不一样。分离字符串

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧