我的目的:單片機發回的一個陣列存到PC端的Excel中并保存(保存資料的程序不要彈出Excel)
但是程式在執行的程序中總報錯,如下“事實錯誤9 下標越界”
求大神指點;
Option Explicit
Dim InByte() As Byte
Dim xlapp As Object
Dim xlBook As Object
Dim xlSheet As Object
Dim myfile As Object
Dim BytReceived() As Byte
Dim a As Integer '定義Excel的行
Private Sub Form_Load()
MSComm1.CommPort = 5 '設定串口位com5 1_16埠
If MSComm1.PortOpen = False Then
MSComm1.Settings = "9600,n,8,1" '通訊引數(波特率,奇偶校驗,資料位,停止位)
MSComm1.InputMode = comInputModeBinary '二進制接受
MSComm1.PortOpen = True '打開串口
MSComm1.InBufferCount = 0 '清空接受緩沖區
MSComm1.RThreshold = 3 '預設時:不產生oncomm事件,緩沖接受區中接受一個字符就 '產生一次OnComm事件,在產生oncomm事件之前要接收的資料uj5u.com熱心網友回復:
For i = 0 To ubound(BytReceived)
xlSheet.Cells(a, i + 2) = BytReceived(i) '事實錯誤9 下標越界????
Next
uj5u.com熱心網友回復:
把 Excel 檔案當作 ADO 外部資料庫來處理。uj5u.com熱心網友回復:
雖然可以將excel當做是一個資料庫來用,但是在實際應用中還是會出現各種各樣的問題,并且效率也不高,還是建議你將資料存盤放在mdb或是SQL資料庫中,然后再重新寫一個程式來定期寫入excel檔案。這樣比較好。特別是和串口通信。uj5u.com熱心網友回復:
寫資料庫比較穩妥, access也比excel好啊uj5u.com熱心網友回復:
4樓的說的比較對,寫入和處理資料的話,最好還是用ACCESS,如果要寫入EXCEL的話,還是要再匯入一遍比較好一些uj5u.com熱心網友回復:
為什么串口通訊就不能將 Excel 作為外部資料庫使用?麻煩說說理由。
uj5u.com熱心網友回復:
“各種各樣的問題”,實際上還是自己寫的代碼有 Bug。
“并且效率也不高”,肯定比寫入 Access 再逐條記錄寫 Excel 物件效率高。
uj5u.com熱心網友回復:
你的 a 一開始 100%就是 0 根本都不需要判斷再來 a = Range("a65536").End(xlUp).Row + 1
msgbox a 看看回傳多少 來找問題可能會比較好找

uj5u.com熱心網友回復:
下界越標就看下界越標么2樓的陳述句用用吧
其他爭論沒意義
有這需求就做,沒什么應該不應該
uj5u.com熱心網友回復:
使用外部資料庫查詢,就根本沒有下標問題了。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/63957.html
標籤:VB基礎類
上一篇:求助加密方式
