返回列表 发帖

将串口接收到的数据保存到EXCEL文档

1.启动excel从:工具-->宏-->Visual Basic 编辑器,打开excel VBA.
2.在ThisWorkbook上右单击鼠标选择插入--用户窗体
3.单击一下插入的窗体,单击菜单上的--工具--附加控件--选择Microsoft Communications Control, version 6.0
4.在窗体上添加mscomm1,添加commandButton1
5.单串口机子,短接rs232的2脚和3脚,双串口机子用232线连接两个串口,注意2、3线交叉,这里以单串口短接举例。
6.复制以下代码到窗体里:
  1. 'VBA代码
  2. Private Sub CommandButton1_Click()
  3.    MSComm1.Output = "BEG1END"
  4. End Sub

  5. Private Sub MSComm1_OnComm()
  6.   Dim t1 As Long, com_String As String
  7.   Static i As Integer
  8.   t1 = Timer
  9.    
  10.   Select Case MSComm1.CommEvent
  11.      Case comEvReceive '收到 RThreshold定义的字符数1字节
  12.            MSComm1.RThreshold = 0
  13.           Do
  14.              DoEvents
  15.           Loop While Timer - t1 < 0.1 '延时时间自己调整
  16.           com_String = MSComm1.Input
  17.           MSComm1.RThreshold = 1
  18.           i = i + 1: If i > 255 Then i = 1
  19.           Application.Cells(3, i).Value = com_String
  20.        End Select
  21.        'ActiveWorkbook.SaveAs Filename:="C:\d1.xls"
  22. End Sub


  23. Private Sub iniMscomm()
  24.    'On Error Resume Next
  25. '=====-----初始化通信串口-----=====

  26.    MSComm1.CommPort = 1                     '使用 COM1
  27.    MSComm1.Settings = "9600,N,8,1"          '9600 波特,无奇偶校验,8 位数据,一个停止位
  28.    MSComm1.PortOpen = True                  '打开端口
  29.    
  30.    MSComm1.RThreshold = 1                   '缓冲区有1个字节就产生OnComm事件
  31.    MSComm1.InputLen = 0                     '为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。
  32.    
  33.    MSComm1.InputMode = comInputModeText  'Input以二进制形式取回用comInputModeBinary,以文本形式取回是(缺省项)
  34.    MSComm1.RTSEnable = True
  35.    MSComm1.InBufferCount = 0                '清空缓冲区
  36.    
  37. End Sub

  38. Private Sub UserForm_Initialize()
  39.     iniMscomm
  40. End Sub
复制代码
7.双击thisWorkBook,复制以下代码到窗体里:
  1. 'VBA代码
  2. Private Sub Workbook_Open()
  3.    UserForm1.Show 0
  4.    'UserForm1.Hide

  5. End Sub
复制代码
8.保存文件并关闭excel,然后再打开你的文件,然后单击你窗体上的按钮看看。
9.程序已经做过测试,sys2003 office2003。
10.如果excel中有数据输入,再去测试设置,注意com口号与波特率的设置。
欢迎光临:逐梦论坛

纯粹帮顶~~~~

TOP

- 学习了。。。

TOP

感激涕零,谢谢楼主的好贴

TOP

今天没事来逛逛

TOP

也是支持,我代表大家顶你了

TOP

怎么

TOP

好帖,有才!

TOP

我喜欢,请大家鼓掌支持,谢谢

TOP

顶你一下,好贴要顶!

TOP

返回列表

Powered by Discuz! 7.2   论坛QQ群:逐梦论坛群

© 2001-2021 Comsenz Inc. 本站服务器由0634云主机提供 鲁公网安备 37120302000001号