逐梦论坛's Archiver

shillan 发表于 2011-12-4 11:24

将串口接收到的数据保存到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.复制以下代码到窗体里:[code]'VBA代码
Private Sub CommandButton1_Click()
   MSComm1.Output = "BEG1END"
End Sub

Private Sub MSComm1_OnComm()
  Dim t1 As Long, com_String As String
  Static i As Integer
  t1 = Timer
   
  Select Case MSComm1.CommEvent
     Case comEvReceive '收到 RThreshold定义的字符数1字节
           MSComm1.RThreshold = 0
          Do
             DoEvents
          Loop While Timer - t1 < 0.1 '延时时间自己调整
          com_String = MSComm1.Input
          MSComm1.RThreshold = 1
          i = i + 1: If i > 255 Then i = 1
          Application.Cells(3, i).Value = com_String
       End Select
       'ActiveWorkbook.SaveAs Filename:="C:\d1.xls"
End Sub


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

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

Private Sub UserForm_Initialize()
    iniMscomm
End Sub[/code]7.双击thisWorkBook,复制以下代码到窗体里:[code]'VBA代码
Private Sub Workbook_Open()
   UserForm1.Show 0
   'UserForm1.Hide

End Sub[/code]8.保存文件并关闭excel,然后再打开你的文件,然后单击你窗体上的按钮看看。
9.程序已经做过测试,sys2003 office2003。
10.如果excel中有数据输入,再去测试设置,注意com口号与波特率的设置。

woiitb8 发表于 2011-12-6 09:12

纯粹帮顶~~~~

贝斯特 发表于 2011-12-9 10:21

- 学习了。。。

红红的灯 发表于 2012-1-28 14:41

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

qazwer168 发表于 2012-2-7 12:36

今天没事来逛逛

xkwhh 发表于 2012-3-9 08:23

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

pjfuf 发表于 2012-3-11 17:08

怎么

hrjfc 发表于 2012-4-13 04:47

好帖,有才!

战神传奇 发表于 2012-7-20 15:06

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

www.xauke.com 发表于 2012-7-21 00:14

顶你一下,好贴要顶!

www.sykjb.com 发表于 2012-7-23 06:43

嘿嘿,回个贴表明我来过。

www.dulady.com 发表于 2012-7-30 18:49

好东西哦,大家不要光看不顶

henanmeijia.com 发表于 2012-8-2 04:47

顶起来!!不好碰到的好帖子

www.dulady.com 发表于 2012-8-4 23:18

帮你顶,人还是厚道点好

www.xmglzy.cn 发表于 2012-8-5 00:45

这个可以回,这个真得回!

www.dulady.com 发表于 2012-8-5 22:11

继续支持没话说~ 楼主真强

www.lctzw.com 发表于 2012-8-13 23:21

顶!!!!!!!!!!

www.dulady.com 发表于 2012-8-17 02:57

真精神!!!!!!

www.dulady.com 发表于 2012-8-17 09:34

谢谢楼主~~~~~~~

qq350275321 发表于 2012-8-21 21:45

谢谢楼主的共享

页: [1] 2 3

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.