Toliau aprašyta procedūra gali būti naudojama norint gauti ADO įrašų rinkinį iš teksto failo ir užpildyti rezultatą darbalapyje.
Sub GetTextFileData (strSQL As String, strFolder As String, rngTargetCell As Range) 'pavyzdys: GetTextFileData "SELECT * FROM filename.txt", _ "C: FolderName", Range ("A3") pavyzdys: GetTextFileData "SELECT * FROM filename.txt WHERE lauko pavadinimas = 'kriterijai' ", _" C: \ FolderName ", diapazonas (" A3 ") Dim cn Kaip ADODB.Connection, rs Kaip ADODB.Recordset, f Kaip sveikasis skaičius Jei rngTargetCell yra niekas, tada išeikite iš antrinio rinkinio cn = Naujas ADODB.Connection On Error Tęsti Kitas cn.Open "Driver = {Microsoft Text Driver ( *.txt; *.csv)};" & _ "Dbq =" & strFolder & ";" & _ "Plėtiniai = asc, csv, tab, txt;" On Error GoTo 0 If cn.State adStateOpen then Exit Sub Set rs = New ADODB.Recordset On Error Resume Next rs. Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText On Error GoTo 0 If rs.State cnCate = Nieko nėra Išeiti iš pabaigos pabaigos, jei lauko antraštės f = 0 iki rs.Fields.Count - 1 rngTargetCell.Offset (0, f). Formula = rs.Fields (f). Pavadinimas Kitas f rngTargetCell.Offset (1, 0 ). „CopyFromRecordset rs“ veikia „Excel 2000“ ar naujesnėje versijoje „RS2WS rs, rngTargetCell“ veikia „Excel 97“ arba ankstesnėje versijoje rs. Uždaryti rinkinį rs = Nieko cn. Uždaryti rinkinį cn = Nieko pabaigos
Procedūrą galima naudoti taip:
Sub TestGetTextFileData () Application.ScreenUpdating = False Workbooks.Add GetTextFileData "SELECT * FROM filename.txt", "C: \ FolderName", Range ("A3") 'GetTextFileData "SELECT * FROM filename.txt WHERE lauko pavadinimas =' kriterijai ' ", _" C: \ FolderName ", Diapazonas (" A3 ") Stulpeliai (" A: IV "). AutoFit ActiveWorkbook.Saved = True End Sub
Pakeiskite failo pavadinimą.txt teksto failo, iš kurio norite gauti duomenis, pavadinimu.
Pakeiskite C: \ FolderName aplanko, kuriame išsaugotas tekstinis failas, pavadinimu.
Pirmoji teksto failo eilutė bus naudojama kaip stulpelių antraštės/laukų pavadinimai.
Kiekvienas stulpelis su datwa turi būti atskirtas sąrašo skiriamuoju ženklu, kuris naudojamas regione
nustatymus valdymo skydelyje. Norvegijoje tai paprastai yra kabliataškis (;), kitose šalyse tai gali būti kablelis (,).
RS2WS procedūrą rasite spustelėję šią nuorodą.
Makrokomandos pavyzdyje daroma prielaida, kad jūsų VBA projektas pridėjo nuorodą į ADO objektų biblioteką.
Tai galite padaryti iš VBE, pasirinkę meniu Įrankiai, Nuorodos ir pasirinkę „Microsoft“
„ActiveX“ duomenų objektai x.x objektų biblioteka.