Uvozite podatke iz besedilne datoteke (ADO) z uporabo VBA v Microsoft Excelu

Anonim

Spodnji postopek lahko uporabite za pridobivanje zapisa zapisov ADO iz besedilne datoteke in rezultat na delovnem listu.

Sub GetTextFileData (strSQL As String, strFolder As String, rngTargetCell As Range) 'Primer: GetTextFileData "SELECT * FROM filename.txt", _ "C: \ Ime mape", Primer obsega ("A3"): GetTextFileData SELECT filename.txt WHERE fieldname = 'criteria' ", _" C: \ FolderName ", Range (" A3 ") Dim cn As ADODB.Connection, rs As ADODB.Recordset, f As Integer Če rngTargetCell ni nič, potem zapustite podnabor cn = Nov ADODB.Connection On Error Resume Next cn.Open "Driver = {Microsoft Text Driver ( *.txt; *.csv)};" & _ "Dbq =" & strFolder & ";" & _ "Razširitve = asc, csv, zavihek, txt;" On Error GoTo 0 Če je cn.State adStateOpen Nato zapustite Sub Set rs = New ADODB.Recordset On Error Nadaljujte Naslednji rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText On Error GoTo 0 Če rs.State cStOnConOpen = Nič Izhod iz podkoncev If 'naslovi polj Za f = 0 Za rs.Fields.Count - 1 rngTargetCell.Offset (0, f) .Formula = rs.Fields (f) .Name Naprej f rngTargetCell.Offset (1, 0 ) .CopyFromRecordset rs "deluje v Excelu 2000 ali novejšem" RS2WS rs, rngTargetCell "deluje v Excelu 97 ali starejših rs. Zapri niz rs = Nič cn. Zapri niz cn = Nič ni konec Sub

Postopek lahko uporabite tako:

Pod TestGetTextFileData () Application.ScreenUpdating = False Workbooks.Add GetTextFileData "SELECT * FROM filename.txt", "C: \ FolderName", Range ("A3") 'GetTextFileData "SELECT * FROM filename.txt' ", _" C: \ Ime mape ", Obseg (" A3 ") Stolpci (" A: IV "). AutoFit ActiveWorkbook.Saved = True End Sub

Filename.txt zamenjajte z imenom besedilne datoteke, iz katere želite dobiti podatke.
Zamenjajte C: \ Ime mape z imenom mape, v kateri je shranjena besedilna datoteka.

Prva vrstica v besedilni datoteki bo uporabljena kot naslovi stolpcev/imena polj.
Vsak stolpec z datwo mora biti ločen z ločevalnim znakom seznama, ki se uporablja v regionalnem
nastavitve na nadzorni plošči. Na Norveškem je to običajno podpičje (;), v drugih državah je to lahko vejica (,).
Postopek RS2WS najdete s klikom na to povezavo.

Primer makra predvideva, da je vaš projekt VBA dodal sklic na knjižnico objektov ADO.
To lahko storite znotraj VBE tako, da izberete meni Orodja, Reference in izberete Microsoft
Knjižnica predmetov ActiveX Data Objects x.x Object.