| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8623 人关注过本帖
标题:VB自动保存EXCEL
取消只看楼主 加入收藏
ranxian
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-6-11
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:5 
VB自动保存EXCEL
各位好,我现在想用VB打开一个现有的EXCEL,并往里面写数据,写一行保存一行,XECEL要不可见,应该怎么写,现在我写这个是直接新建一个EXCEL(可见),然后MSCOMM触发一次就写一行数据,可是不能保存。
Option Explicit
Dim xlapp As Variant
Dim xlBook As Variant
Dim xlsheet As Variant
Dim i As Variant
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
Set xlapp = CreateObject("excel.application")
xlapp.Visible = True
Set xlBook = xlapp.Workbooks.Add
Set xlsheet = xlBook.Worksheets(1)
MSComm1.Settings = "9600,n,8,1"
= 3
MSComm1.NullDiscard = False
MSComm1.RThreshold = 62
MSComm1.InputMode = 0
MSComm1.PortOpen = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
xlapp.Quit '关闭EXCEL
Set xlapp = Nothing '释放EXCEL对象
End Sub
Private Sub MSComm1_OnComm()
Text1 = ""
If i = 0 Then
i = 2
Else
i = i + 1
End If
Text1.Text = MSComm1.Input
Text2.Text = Mid(Text1, 6, 10) '日期
Text3.Text = Mid(Text1, 17, 8) '时间
Text4.Text = Mid(Text1, 32, 6) '压力
Text5.Text = Mid(Text1, 39, 3) '压力单位
Text6.Text = Mid(Text1, 44, 2) '测试结果
Text7.Text = Mid(Text1, 48, 5) '泄漏量
Text8.Text = Mid(Text1, 54, 8) '泄漏单位
xlsheet.Cells(i, 2) = Text2.Text
xlsheet.Cells(i, 3) = Text3.Text
xlsheet.Cells(i, 4) = Text4.Text
xlsheet.Cells(i, 5) = Text5.Text
xlsheet.Cells(i, 6) = Text6.Text
xlsheet.Cells(i, 7) = Text7.Text
xlsheet.Cells(i, 8) = Text8.Text
xlsheet.Cells(1, 1) = "序号"
xlsheet.Cells(1, 2) = "日期"
xlsheet.Cells(1, 3) = "时间"
xlsheet.Cells(1, 4) = "测试压力"
xlsheet.Cells(1, 5) = "单位"
xlsheet.Cells(1, 6) = "测试结果"
xlsheet.Cells(1, 7) = "泄露量"
xlsheet.Cells(1, 8) = "单位"
xlsheet.Cells(i, 1) = 0 + i
End Sub
搜索更多相关主题的帖子: EXCEL 新建 
2011-06-15 13:53
ranxian
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-6-11
收藏
得分:0 
谢谢wube,我把我的全部思路说一下吧,我先在D盘建一个EXCEL,然后让VB去打开这个EXECL,但是EXCEL只能在后台运行,不能显示,MSCOMM触发一次就往里面写一行数据,并保存一次。
唉,其实这也有个问题,VB下次再往里面写的时候怎么知道写到那一行了,还有EXCEL写满了怎么办。
2011-06-15 15:37
ranxian
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-6-11
收藏
得分:0 
MSCOMM触发一次就往里面写一行数据,这里已经没有问题了,可以一行一行的写进数据,格式是有要求的,text1收到的是一串数据,我把收到的数据分别存在TEXT2-TEXT8里面,然后再分别写到EXCEL的A2-G8里面,然后写入一次就换一次行。每天的数据量大概是2500行左右,EXCEL按65000行来算的哈,20几天就写满了,列数倒是只有10列, 如果可以,可以用EXCEL2007,大不了我过段时间就备份一次,然后清空EXCEL,
EXCEL里的格式大概是这样的
序号  日期   时间    压力    单位     结果    泄漏量    单位  
1    2011.    09      09      KP       OK       0.1      CM
2011-06-15 17:45
ranxian
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-6-11
收藏
得分:0 
是这样啊,那完全可以用这个方法来写嘛,只不过这个东西从来都没有用过,不知道怎么弄啊,我先去下载个过来看看。
2011-06-15 19:32
ranxian
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-6-11
收藏
得分:0 
要是你手上有案例的哈,可以发个给我看看吗。
2011-06-15 19:34
ranxian
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-6-11
收藏
得分:0 
谢谢wube,问题已经解决,我现在还是用的是EXCEL做的,不过你给我的这个我也弄好了,非常感谢你。
2011-06-17 11:55
快速回复:VB自动保存EXCEL
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018068 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved