Importujte data z textového souboru (ADO) pomocí jazyka VBA v aplikaci Microsoft Excel

Anonim

Níže uvedený postup lze použít k získání sady záznamů ADO z textového souboru a vyplnění výsledku do listu.

Sub GetTextFileData (strSQL As String, strFolder As String, rngTargetCell As Range) 'příklad: GetTextFileData "SELECT * FROM filename.txt", _ "C: \ FolderName", Range ("A3")' example: GetTextFileData "SELECT * FROM název_souboru.txt KDE název pole = 'kritéria' ", _" C: \ Název složky ", rozsah (" A3 ") Dim cn jako ADODB.Connection, rs jako ADODB.Recordset, f jako celé číslo, pokud rngTargetCell není nic, pak ukončete dílčí sadu cn = Nové ADODB.Connection Při chybě Pokračovat Další cn.Open "Driver = {Microsoft Text Driver ( *.txt; *.csv)};" & _ "Dbq =" & strFolder & ";" & _ "Extensions = 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 adStateOpen Then cn. = Nic Ukončit Sub End If 'záhlaví polí Pro f = 0 To rs.Fields.Count - 1 rngTargetCell.Offset (0, f) .Formula = rs.Fields (f) .Name Next f rngTargetCell.Offset (1, 0 ) .CopyFromRecordset rs 'funguje v Excelu 2000 nebo novější' RS2WS rs, rngTargetCell 'funguje v Excelu 97 nebo dřívějších r. Zavřít sadu rs = Nic cn. Zavřít sadu cn = Nic Konec Sub

Postup lze použít takto:

Sub TestGetTextFileData () Application.ScreenUpdating = False Workbooks.Add GetTextFileData "SELECT * FROM filename.txt", "C: \ FolderName", Range ("A3") 'GetTextFileData "SELECT * FROM filename.txt WHERE fieldname =' kritéria ' ", _" C: \ FolderName ", rozsah (" A3 ") sloupce (" A: IV "). AutoFit ActiveWorkbook.Saved = True End Sub

Nahraďte soubor filename.txt názvem textového souboru, ze kterého chcete získat data.
Nahraďte C: \ FolderName názvem složky, kde je uložen textový soubor.

První řádek v textovém souboru bude použit jako záhlaví sloupců/názvy polí.
Každý sloupec s datwou musí být oddělen znakem oddělovače seznamu, který se používá v regionálním
nastavení v Ovládacích panelech. V Norsku je to obvykle středník (;), v jiných zemích to může být čárka (,).
Postup RS2WS najdete kliknutím na tento odkaz.

Příklad makra předpokládá, že váš projekt VBA přidal odkaz na knihovnu objektů ADO.
Můžete to udělat z VBE výběrem nabídky Nástroje, Reference a výběrem Microsoft
Knihovna objektů ActiveX Data Objects x.x.