Alla olevien ohjeiden avulla voit hakea tietuejoukon suljetusta työkirjasta ADO: n avulla ja lukea/kirjoittaa tietoja.
Kutsu menettely seuraavasti:
GetWorksheetData "C: FoldnameFilename.xls", "SELECT * FROM [SheetName $];", ThisWorkbook.Worksheets (1) .Range ("A3")
Korvaa SheetName laskentataulukon nimellä, josta haluat hakea tietoja.
Sub GetWorksheetData (strSourceFile As String, strSQL As String, TargetCell As Range)
Dim cn ADODB.yhteytenä, rs ADODB.Recordsetina, f Kokonaislukuna, r Niin kauan
Jos TargetCell ei ole mitään, sulje Sub
Aseta cn = Uusi ADODB.Yhteys
Virhe Jatka seuraavaksi
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
Virhe GoTo 0
Jos cn ei ole mitään sitten
MsgBox "Tiedostoa ei löydy!", VbExclamation, ThisWorkbook.Name
Lopeta Sub
Loppu Jos
'avaa tietue
Aseta rs = Uusi ADODB.Recordset
Virhe Jatka seuraavaksi
rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'rs.Avaa "SELECT * FROM [SheetName $]", _
cn, adOpenForwardOnly, adLockReadOnly, adCmdText
'rs.Avaa "SELECT * FROM [SheetName $]", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'rs.Avaa "SELECT * FROM [SheetName $] WHERE [Kentän nimi] LIKE' A%'", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'rs.Avaa "SELECT * FROM [SheetName $] WHERE [Kentän nimi] TYKKÄÄ' A%'TILAUS [Kentän nimi]", _
cn, adOpenStatic, adLockOptimistic, adCmdText
'valinnaisia tapoja hakea tietue
'Aseta rs = cn.Execute ("[A1: Z1000]")' ensimmäinen laskentataulukko
'Aseta rs = cn.Execute ("[[DefinedRangeName]" ")' mikä tahansa laskentataulukko
Virhe GoTo 0
Jos RS ei ole sitten mitään
MsgBox "Tiedostoa ei voi avata!", VbExclamation, ThisWorkbook.Name
cn. sulje
Aseta cn = ei mitään
Lopeta Sub
Loppu Jos
RS2WS rs, TargetCell
'TargetCell.CopyFromRecordset rs' valinnainen lähestymistapa Excel 2000: lle tai uudemmalle
Jos rs.State = adStateOpen Then
rs Sulje
Loppu Jos
Aseta rs = ei mitään
cn. sulje
Aseta cn = ei mitään
End Sub
Makroesimerkki olettaa, että VBA -projektisi on lisännyt viittauksen ADO -objektikirjastoon.
Voit tehdä tämän VBE: stä valitsemalla valikon Työkalut, Viitteet ja Microsoft
ActiveX -tietoobjektit x.x -objektikirjasto.