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 这样应该不会有覆盖提示