Izmantojot tālāk norādītās procedūras, varat izmantot ADO, lai izgūtu ierakstu kopu no slēgtās darbgrāmatas un lasītu/rakstītu datus.
Izsauciet procedūru šādi:
GetWorksheetData "C: FoldernameFilename.xls", "SELECT * FROM [SheetName $];", ThisWorkbook.Worksheets (1). Range ("A3")
Aizstājiet SheetName ar darblapas nosaukumu, no kura vēlaties izgūt datus.
Apakš GetWorksheetData (strSourceFile kā virkne, strSQL kā virkne, TargetCell kā diapazons)
Dim cn Kā ADODB. Savienojums, rs Kā ADODB. Ierakstu kopa, f Kā vesels skaitlis, r Tik garš
Ja TargetCell nav nekas, izejiet no apakšsadaļas
Iestatiet cn = Jauns ADODB. Savienojums
Par kļūdu Atsākt nākamo
cn. Atveriet "DRIVER = {Microsoft Excel draiveris (*.xls)}; DriverId = 790; ReadOnly = True;" & _
"DBQ =" & strSourceFile & ";"
“DriverId = 790: Excel 97/2000
“DriverId = 22: Excel 5/95
“DriverId = 278: Excel 4
“DriverId = 534: Excel 3
Kļūda GoTo 0
Ja cn nav nekas, tad
MsgBox "Nevar atrast failu!", VbExclamation, ThisWorkbook.Name
Iziet no apakšnodaļas
Beigas Ja
'atveriet ierakstu kopu
Iestatīt rs = Jauna ADODB.Recordset
Par kļūdu Atsākt nākamo
rs. Atvērt strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'rs. Atveriet "SELECT * FROM [SheetName $]", _
cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'rs. Atveriet "SELECT * FROM [SheetName $]", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'rs.Atveriet "SELECT * FROM [SheetName $] WHERE [Lauka nosaukums] LIKE' A%'", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'rs.Atveriet "SELECT * FROM [SheetName $] WHERE [Lauka nosaukums] LIKE' A%'ORDER BY [Field Name]", _
cn, adOpenStatic, adLockOptimistic, adCmdText
"izvēles veidi, kā izgūt ierakstus
'Iestatīt rs = cn.Execute ("[A1: Z1000]")' pirmā darblapa
'Iestatīt rs = cn.Execute ("[DefinedRangeName]")' jebkuru darblapu
Kļūda GoTo 0
Ja rs nav nekas, tad
MsgBox "Nevar atvērt failu!", VbExclamation, ThisWorkbook.Name
cn. Aizvērt
Set cn = Nekas
Iziet no apakšnodaļas
Beigas Ja
RS2WS rs, TargetCell
“TargetCell.CopyFromRecordset rs” izvēles pieeja programmai Excel 2000 vai jaunāka versija
Ja rs.State = adStateOpen then
rs. Aizvērt
Beigas Ja
Iestatīt rs = nekas
cn. Aizvērt
Set cn = Nekas
Beigt apakš
Makro piemērā tiek pieņemts, ka jūsu VBA projekts ir pievienojis atsauci uz ADO objektu bibliotēku.
To var izdarīt no VBE, izvēloties izvēlni Rīki, Atsauces un atlasot Microsoft
ActiveX datu objekti x.x objektu bibliotēka.