S spodnjimi postopki lahko uporabite ADO za pridobivanje zapisa iz zaprtega delovnega zvezka in branje/pisanje podatkov.
Postopek pokličite tako:
GetWorksheetData "C: FoldernameFilename.xls", "SELECT * FROM [SheetName $];", ThisWorkbook.Worksheets (1) .Range ("A3")
SheetName zamenjajte z imenom delovnega lista, iz katerega želite pridobiti podatke.
Sub GetWorksheetData (strSourceFile kot niz, strSQL kot niz, TargetCell kot obseg)
Dim cn Kot ADODB.Povezava, rs Kot ADODB.Recordset, f Kot celo število, r tako dolgo
Če TargetCell ni nič, zapustite Sub
Nastavite cn = Nova ADODB.povezava
On Napaka Nadaljuj Naprej
cn.Open "DRIVER = {Microsoft Excel Driver (*.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
Pri napaki Pojdi na 0
Če cn ni nič, potem
MsgBox "Datoteke ni mogoče najti!", VbExclamation, ThisWorkbook.Name
Zapri pod
Konec Če
'odpri niz zapisov
Nastavite rs = Nov ADODB.Recordset
On Napaka Nadaljuj Naprej
rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'rs. Odprite "SELECT * FROM [SheetName $]", _
cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'rs. Odprite "SELECT * FROM [SheetName $]", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'rs. Odprite "SELECT * FROM [SheetName $] WHERE [Ime polja] PODOBNO' A%'", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'rs. Odprite "SELECT * FROM [SheetName $] WHERE [Field Name] PODOBNO' A%'ORDER BY [Field Name]", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'neobvezni načini pridobivanja niza zapisov
'Set rs = cn.Execute ("[A1: Z1000]")' prvi delovni list
'Set rs = cn.Execute ("[DefinedRangeName]")' kateri koli delovni list
Pri napaki Pojdi na 0
Če rs ni nič, potem
MsgBox "Datoteke ni mogoče odpreti!", VbExclamation, ThisWorkbook.Name
cn.Zapri
Nastavi cn = nič
Zapri pod
Konec Če
RS2WS rs, TargetCell
Izbirni pristop »TargetCell.CopyFromRecordset rs« za Excel 2000 ali novejši
Če je rs.State = adStateOpen Potem
rs.Zapri
Konec Če
Nastavite rs = Nič
cn.Zapri
Nastavi cn = nič
End Sub
Primer makra predvideva, da je vaš projekt VBA dodal sklic na knjižnico objektov ADO.
To lahko storite znotraj VBE tako, da izberete meni Orodja, Reference in izberete Microsoft
Knjižnica predmetov ActiveX Data Objects x.x Object.