Allolevat protseduuri saab kasutada tekstifailist ADO -kirje kogumiseks ja tulemuse täitmiseks töölehel.
Sub GetTextFileData (strSQL kui string, strFolder kui string, rngTargetCell As Range) 'näide: GetTextFileData "SELECT * FROM filename.txt", _ "C: FolderName", Range ("A3")' näide: GetTextFileData "SELECT * FROM failinimi.txt WHERE välja nimi = 'kriteeriumid', _ "C: \ KaustaNimi", vahemik ("A3") Dim cn Nagu ADODB.Connection, rs As ADODB.Recordset, f Täisarvuna Kui rngTargetCell pole midagi, siis välju alamkomplektist cn = Uus ADODB.ühendus tõrke korral Jätka järgmisel cn.Open "Driver = {Microsoft Text Driver ( *.txt; *.csv)};" & _ "Dbq =" & strFolder & ";" & _ "Laiendid = 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 Viga GoTo 0 If rs.State cnC. = Mitte midagi Välju alamotsast Kui 'välja pealkirjad F = 0 kuni rs.Fields.Count - 1 rngTargetCell.Offset (0, f) .Vormel = rs.Fields (f) .Nimi Järgmine f rngTargetCell.Offset (1, 0 ). CopyFromRecordset rs töötab Excelis 2000 või uuemas versioonis 'RS2WS rs, rngTargetCell' töötab rakenduses Excel 97 või varasemas rs. Sulgege komplekt rs = Nothing cn. Sulgege komplekt cn = Nothing End Sub
Protseduuri saab kasutada järgmiselt:
Sub TestGetTextFileData () Application.ScreenUpdating = False Workbooks.Add GetTextFileData "SELECT * FROM filename.txt", "C: \ FolderName", Range ("A3") 'GetTextFileData "SELECT * FROM filename.txt WHERE välja nimi =' kriteeriumid ' ", _" C: \ FolderName ", Vahemik (" A3 ") veerud (" A: IV "). AutoFit ActiveWorkbook.Saved = True End Sub
Asendage failinimi.txt tekstifaili nimega, kust soovite andmeid saada.
Asendage C: \ FolderName selle kausta nimega, kuhu tekstifail on salvestatud.
Tekstifaili esimest rida kasutatakse veerupäiste/väljade nimedena.
Iga veerg koos datwaga tuleb eraldada loendis eraldaja märgiga, mida kasutatakse piirkonnas
juhtpaneeli sätteid. I Norra on tavaliselt semikoolon (;), teistes riikides võib see olla koma (,).
Selle protseduuri RS2WS leiate sellel lingil klõpsates.
Makronäide eeldab, et teie VBA projekt on lisanud viite ADO objektiteekile.
Seda saate teha VBE -s, valides menüü Tööriistad, Viited ja valides Microsoft
ActiveX andmeobjektid x.x objektide kogu.