02. oktober 2004 - 10:05Der er
5 kommentarer og 1 løsning
Tekstfiler og lopslag
Jeg har en tekstfil med mere end 65000 data rækker i. Kan jeg lave lopslag på den? hvilken type tekstfil skal jeg bruge? Hvordan skal lopslag se ud? Er der evt. andre måder?
Jeg kender ikke nogen direkte metoder, men det kan selvfølgelig lade sig gøre at programmere i VBA. Det letteste er nok at importere tekstfilen og så lave opslaget med LOPSLAG her.
Om ikke andet, så fandt jeg lige på en måde at hente og dele din fil op på to ark. Så kan den jo i hvert tilfælde læses ind i Excel. Hvis det altså er nogen hjælp.
Sub OpenAndSplitFile() Dim lngRow As Long Dim test As Integer Dim txt As String
Const RowsPerSheet = 65000 'Angiv antal rækker per faneblad (Max er 65536)
Private Sub Workbook_Open() Call HentFil(OK) End Sub
I et Modul, ikke et ark eller ThisWorkbook modulet
Public Data(100000, 2) As Variant ' ret 100000 til det antal rækker du maks får i filen ' ret 2 til det antal kolonner du har i filen -1
Public Function DataOpslag(Kriterie As Range, OpslagsCol As Integer, ResultatCol As Integer) As Variant For I = 0 To UBound(Data) If Str(Data(I, OpslagsCol)) = Str(Kriterie.Value) Then DataOpslag = Data(I, ResultatCol) Exit Function End If Next DataOpslag = " Ikke fundet" End Function Public Sub HentFil(OK) Dim I As Long, A As Integer, T As Integer, Temp As Variant I = 0 Open "D:\Datafil.txt" For Input As #1 ' ret navnet til din datafil Do Line Input #1, Linie Temp = Split(Linie, vbTab) ' ret VbTab til din data adskiller If I = 0 Then A = UBound(Temp) End If For T = 0 To A Data(I, T) = Temp(T) Next I = I + 1 Loop Until EOF(1) Close 1 End Sub
Kaldes med
= DataOpslag($A$1;0;2) Hvor A1 har værdien du søger 0 er den første kolonne som den søger i 2 er den kolonne resultatet kommer fra
Så du kan søge på alle kolonner ( en af gangen ), og få resultatet på hvilken som helst kolonne
Hej sjap. Hvordan kan jeg bruge dette hvis min txt fil er på over 1 million linjer? Jeg har oprettet et spørgsmål på det her: http://www.eksperten.dk/spm/787105
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.