读书人

VB写EXCEL,该怎么解决

发布时间: 2012-03-23 12:06:21 作者: rapoo

VB写EXCEL
小弟是个菜鸟,编写VB程序遇到一个问题,还请各位支个招!
具体功能是:每当串口接收一个数据后,电脑自动想把数据写到D:\TEST.XLS中.

但是我的程序运行后,每次只能保存最后的数据,以前的数据丢失。

譬如:第一次,我接收到一个“100”,数据被写到(1,1)单元。

第二次,我接收到一个“010”,数据被写到(1,2)单元。

问题出现了。我打开TEST.XLS,结果并不是(1,1)=“100” (1,2)=“010“ ,而是只有(1,2)=“010“。

我想问的是:如何连续把串口传送来的数据 陆续写进EXCEL中,所有的数据都能保存。


我写的代码如下:
Option Explicit
Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
Dim test As Variant
Dim filename As String
Dim i, j As Integer
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True
filename = Date
i = 0
j = 0

End Sub

Private Sub MSComm1_OnComm()

i = i + 1
j = j + 1

Set xlapp = CreateObject("Excel.Application")

Set xlbook = xlapp.Workbooks.open("d:\test.xls")

Set xlsheet = xlbook.Worksheets(1)

xlsheet.Cells(i, j + 0) = "100"

xlapp.Visible = false

xlbook.SaveAs ("d:\test.xls")
xlbook.Close False
xlapp.Quit

End Sub

[解决办法]
程序貌似没什么问题 不能存的原因不知道是不是和你那个,I和J给复位了 另外 xlbook.SaveAs ("d:\test.xls") 可以改成xlbook.Save 这样应该不会有覆盖提示

读书人网 >VB

热点推荐