Új hozzászólás Aktív témák

  • Mutt

    senior tag

    válasz Bocimaster #17803 üzenetére

    Hello,

    Ha tényleg 35GB-os a text fájl akkor szerintem Excel-t felejtsd el, vagy előbb PowerPivot kiegészítőd rakd fel. Ezt inkább adatbáziskezelővel kellene feldolgozni.

    A lenti makró megcsinálja azt amit kérsz, egy 70MB-os 400.000 soros text fájlon nekem kb. 5 perc kellett neki. Egy 35 GB-oson 41 óra lenne a beolvasás, szóval mielőtt ráereszted egy kisebb szeleten is próbáld ki.

    Saját felelősségre itt a kód.

    Sub ImportTxtFile()
    Dim myFileName As String
    Dim myLine As String
    Dim FileNum As Long
    Dim sor As Long
    Dim splitLine
    Dim i As Long
    Const chrDelimiter = vbTab

    'fájl hozzárendelése
    myFileName = "C:\test.txt"
    FileNum = FreeFile
    Close FileNum
    Open myFileName For Input As FileNum

    'képernyő frissítés kikapcsolása
    Application.ScreenUpdating = False

    sor = 1

    'fájl beolvasás kezdete
    Do While Not EOF(FileNum)
    Line Input #FileNum, myLine
    'sorok felszabdalása
    splitLine = Split(myLine, chrDelimiter)
    'sorok cellákba mentése
    If UBound(splitLine) > 0 Then
    For i = 1 To UBound(splitLine)
    ActiveSheet.Cells(sor, i) = splitLine(i - 1)
    Next i
    End If
    sor = sor + 1
    'új munkalap nyitása - ha már nincs több sor
    If sor > Rows.Count Then
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Activate
    sor = 1
    End If
    Loop

    Application.ScreenUpdating = True
    End Sub

    üdv.

Új hozzászólás Aktív témák

Hirdetés