Pomoću dolje navedenih postupaka možete koristiti ADO za dohvaćanje skupa zapisa iz zatvorene radne knjige i čitanje/pisanje podataka.
Postupak nazovite ovako:
GetWorksheetData "C: FoldernameFilename.xls", "SELECT * FROM [SheetName $];", ThisWorkbook.Worksheets (1) .Range ("A3")
Zamijenite SheetName imenom radnog lista iz kojeg želite dohvatiti podatke.
Sub GetWorksheetData (strSourceFile kao niz, strSQL kao niz, TargetCell kao raspon)
Dim cn Kao ADODB.Povezivanje, rs Kao ADODB.Recordset, f Kao cijeli broj, r Kao dugo
Ako TargetCell nije ništa, izađite iz Sub
Postavite cn = Novi ADODB.Povezivanje
Uključeno Slijedi nastavak greške
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
Uključeno Greška Idi na 0
Ako cn nije ništa onda
MsgBox "Ne mogu pronaći datoteku!", VbExclamation, ThisWorkbook.Name
Izlaz iz podv
Završi ako
'otvori skup zapisa
Postavite rs = Novi ADODB.Recordset
Uključeno Slijedi nastavak greške
rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'rs.Otvorite "SELECT * FROM [SheetName $]", _
cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'rs.Otvorite "SELECT * FROM [SheetName $]", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'rs. Otvorite "SELECT * FROM [SheetName $] WHERE [Field Name] LIKE' A%'", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'rs. Otvorite "SELECT * FROM [SheetName $] WHERE [Field Name] LIKE' A%'ORDER BY [Field Name]", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'izborni načini dohvaćanja skupa zapisa
'Postavi rs = cn.Execute ("[A1: Z1000]")' prvi radni list
'Postavi rs = cn.Execute ("[DefinedRangeName]")' bilo koji radni list
Uključeno Greška Idi na 0
Ako rs nije ništa onda
MsgBox "Ne mogu otvoriti datoteku!", VbExclamation, ThisWorkbook.Name
cn.Zatvori
Postavite cn = Ništa
Izlaz iz podv
Završi ako
RS2WS rs, TargetCell
Opcijski pristup 'TargetCell.CopyFromRecordset rs' za Excel 2000 ili noviji
Ako je rs.State = adStateOpen Onda
rs.Zatvori
Završi ako
Postavite rs = Ništa
cn.Zatvori
Postavite cn = Ništa
Kraj podm
Primjer makroa pretpostavlja da je vaš VBA projekt dodao referencu u biblioteku objekata ADO.
To možete učiniti iz VBE -a odabirom izbornika Alati, Reference i odabirom Microsofta
ActiveX Data Objects x.x Knjižnica objekata.