Importējiet datus no teksta faila (ADO), izmantojot Microsoft Excel VBA

Anonim

Tālāk aprakstīto procedūru var izmantot, lai no teksta faila iegūtu ADO ierakstu kopu un aizpildītu rezultātu darblapā.

Apakš GetTextFileData (strSQL kā virkne, strFolder kā virkne, rngTargetCell kā diapazons) 'piemērs: GetTextFileData "SELECT * FROM filename.txt", _ "C: FolderName", Range ("A3") piemērs: GetTextFileData "SELECT * FROM filename.txt WHERE lauka nosaukums = 'kritēriji', _ "C: \ FolderName", Diapazons ("A3") Dim cn Kā ADODB.Connection, rs Kā ADODB.Recordset, f Kā vesels skaitlis Ja rngTargetCell nav nekas, tad iziet no apakškopas cn = Jauns ADODB.Connection On Error Atsākt nākamo cn.Open "Driver = {Microsoft Text Driver ( *.txt; *.csv)};" & _ "Dbq =" & strFolder & ";" & _ "Paplašinājumi = 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 Par kļūdu GoTo 0 Ja rs.State cn. = Nekas Iziet no apakšgala Ja 'lauku virsraksti F = 0 līdz rs.Fields.Count - 1 rngTargetCell.Offset (0, f). Formula = rs.Fields (f). Nosaukums Nākamais f rngTargetCell.Offset (1, 0 ). CopyFromRecordset rs 'darbojas programmā Excel 2000 vai jaunākā versijā' RS2WS rs, rngTargetCell 'darbojas programmā Excel 97 vai vecākā rs. Aizvērt kopu rs = Nekas cn. Aizvērt kopu cn = Nekas Beigu apakšdaļa

Procedūru var izmantot šādi:

Sub TestGetTextFileData () Application.ScreenUpdating = False Workbooks.Add GetTextFileData "SELECT * FROM filename.txt", "C: \ FolderName", Range ("A3") 'GetTextFileData "SELECT * FROM filename.txt WHERE lauka nosaukums =' kritēriji ' ", _" C: \ FolderName ", Diapazons (" A3 ") Kolonnas (" A: IV "). AutoFit ActiveWorkbook.Saved = True End Sub

Aizstājiet failu filename.txt ar teksta faila nosaukumu, no kura vēlaties iegūt datus.
C: \ FolderName aizstājiet ar mapes nosaukumu, kurā saglabāts teksta fails.

Teksta faila pirmā rinda tiks izmantota kā kolonnu virsraksti/lauku nosaukumi.
Katra kolonna ar datwa ir jāatdala ar saraksta atdalītāja rakstzīmi, kas tiek izmantota reģionālajā
iestatījumus vadības panelī. Norvēģijā tas parasti ir semikols (;), citās valstīs tas var būt komats (,).
RS2WS procedūru atradīsit, noklikšķinot uz šīs saites.

Makro piemērā tiek pieņemts, ka jūsu VBA projekts ir pievienojis atsauci uz ADO objektu bibliotēku.
To var izdarīt no VBE, izvēloties izvēlni Rīki, Atsauces un atlasot Microsoft
ActiveX datu objekti x.x objektu bibliotēka.