Fremgangsmåden herunder kan bruges til at hente et ADO -rekordsæt fra en tekstfil og udfylde resultatet i et regneark.
Sub GetTextFileData (strSQL As String, strFolder As String, rngTargetCell As Range) 'eksempel: GetTextFileData "SELECT * FROM filename.txt", _ "C: \ FolderName", Range ("A3")' eksempel: GetTextFileData "SELECT * FROM filename.txt WHERE fieldname = 'criteria' ", _" C: \ FolderName ", Range (" A3 ") Dim cn As ADODB.Connection, rs As ADODB.Recordset, f As Integer If rngTargetCell Is Nothing Then Exit Sub Set cn = Ny ADODB.forbindelse ved fejl Genoptag Næste 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. = Intet Afslut Sub End Hvis 'feltoverskrifterne For f = 0 Til rs.Fields.Count - 1 rngTargetCell.Offset (0, f) .Formula = rs.Fields (f) .Name Næste f rngTargetCell.Offset (1, 0 ) .CopyFromRecordset rs 'fungerer i Excel 2000 eller nyere' RS2WS rs, rngTargetCell 'fungerer i Excel 97 eller tidligere rs.Close Set rs = Intet cn.Close Set cn = Intet ende Sub
Proceduren kan bruges således:
Sub TestGetTextFileData () Application.ScreenUpdating = False Workbooks.Add GetTextFileData "SELECT * FROM filename.txt", "C: \ FolderName", Range ("A3") 'GetTextFileData "SELECT * FROM filename.txt WHERE fieldname =' criteria ' ", _" C: \ FolderName ", Range (" A3 ") kolonner (" A: IV "). AutoFit ActiveWorkbook.Saved = True End Sub
Erstat filnavn.txt med navnet på den tekstfil, du vil hente data fra.
Erstat C: \ FolderName med navnet på den mappe, hvor tekstfilen er gemt.
Den første række i tekstfilen bruges som kolonneoverskrifter/feltnavne.
Hver kolonne med datwa skal adskilles med det listeadskillertegn, der bruges i regionen
indstillinger i Kontrolpanel. I Norge er dette normalt semikolon (;), i andre lande kan dette være et komma (,).
Du finder proceduren RS2WS ved at klikke på dette link.
Makroeksemplet antager, at dit VBA -projekt har tilføjet en reference til ADO -objektbiblioteket.
Du kan gøre dette inde fra VBE ved at vælge menuen Værktøjer, Referencer og vælge Microsoft
ActiveX Data Objects x.x Object Library.