close
用ADO將另一個Excel檔當作一個資料庫,以SQL語法來取得資料。

讀取資料的範例如下:
-------------------------------------------------------------------------------------
Sub test01()

'測試excel當成database

Dim I As Integer

'宣告ADO物件
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")

'以ADO連線另一個Excel,並將它開啟為資料庫
'「Excel 8.0」並非指Excel的版本,而是ADO使用的版本,如無特殊需求則儘量不要更改它
'「HDR」表示是否含工作表的第一列為標題列,「Yes」表示工作表的第一列為標題,也就是表格的欄位名稱
'Excel 64位元的版本已不再支援Jet引擎,改用Ace引擎,所以字串可改為Provider=Microsoft.Jet.OLEDB.12.0
objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\test.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"

'執行SQL並將結果傳回給Recordset
objRecordset.Open "Select 姓名,地址 " & _
"FROM [Sheet1$] where 姓名 like '陳%' " & _
, objConnectio
I = 0

'開啟Recordset,並將資料代入儲存格
Do Until objRecordset.EOF
I = I + 1
Sheets("工作表1").Range("A" & I).Value = objRecordset.Fields.Item("姓名")
Sheets("工作表1").Range("B" & I).Value = objRecordset.Fields.Item("地址")

'將Recordset移到下一筆
objRecordset.MoveNext
Loop

objRecordset.Close
objconnection.Close

End Sub

------------------------------------------------------------------------------------------
arrow
arrow
    全站熱搜

    keven 發表在 痞客邦 留言(0) 人氣()