在excel表格中,經常會有一行含多個合并單元格的欄位。用讀取的時候總會有一些讀不到的內容。例如:
excel表格的內容如下:
AA(1個單元格) BB(1個單元格) CC(1個單元格) DD(2個單元格)EE(2個單元格)FF(3個單元格)GG(3個單元格)
代碼大概是:
Excelcn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source" & App.Path & "\aa.xls;" Extended Properties=""Excel 8.0;HDR=YES;"""
cn.Open Excelcn
cn.CursorLocation = adUseClient
rs.Open "SELECT * FROM [Sheet1$]", cn, adOpenStatic
rs.MoveFirst
Do Until rs.EOF
For j = 0 To rs.Fields.Count - 1
Debug.Print rs(j)
Next j
rs.MoveNext
Loop
執行后發現出來的結果 FF是null
例 如:AA BB CC DD null EE null null null null GG null null
為何結果不是:AA BB CC DD null EE null FF null null GG null null
請各位高手幫忙指點一二,如何才能完整讀到呢?
uj5u.com熱心網友回復:
有高手愿意指導一下嗎?uj5u.com熱心網友回復:
看樣子沒有人了uj5u.com熱心網友回復:
Try:"Data Source" & App.Path & "\aa.xls;" Extended Properties=""Excel 8.0;HDR=YES;IMEX=1"""
uj5u.com熱心網友回復:
"Data Source" & App.Path & "\aa.xls;" Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;"""
uj5u.com熱心網友回復:
直接的ADO好像沒有辦法,除非用excel物件方式uj5u.com熱心網友回復:
下面是可以正確讀取的:沒有與你相同的驅動,就用最普通的。
IMEX 必須加。
Excelcn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\aa.xls;" & _
"Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;"""
cn.Open Excelcn
cn.CursorLocation = adUseClient
rs.Open "SELECT * FROM [Sheet1$]", cn, adOpenStatic
rs.MoveFirst
Do Until rs.EOF
For j = 0 To rs.Fields.Count - 1
If j > 0 Then Debug.Print ",";
Debug.Print rs(j);
Next j
Debug.Print
rs.MoveNext
Loop
uj5u.com熱心網友回復:
我測驗的結果和樓主不同。Dim cn As New ADODB.Connection, rs As New ADODB.Recordset, j As Long
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test\test.xls;Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""
rs.Open "select * from [sheet1$]", cn
Do Until rs.EOF
For j = 0 To rs.Fields.Count - 1
Debug.Print rs(j),
Next j
Debug.Print
rs.MoveNext
Loop
aa bb cc dd Null ee Null ff Null Null gg Null Null
uj5u.com熱心網友回復:
用這個讀取好像不能讀取混合字符,大俠們有沒有好方法呢轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/85556.html
標籤:VBA
上一篇:cdr中vba里怎么代碼讀取文本使用了什么字體? 請高手賜教!謝謝...
下一篇:VBA 物件不是一個集合
