Keresés

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

  • Pakliman

    tag

    válasz Louro #42481 üzenetére

    Szia!

    Egy lehetőség:

    Public Sub xx()
    Const sFN As String = "d:\teszt.csv"
    Dim csv As Integer
    Dim sLine As String
    Dim o As Long 'Az adatoszlopok száma...
    Dim i As Long
    Dim j As Long
    Dim db As Long
    Dim s As String
    Dim arr0, arr

    csv = FreeFile()
    Open sFN For Input As csv
    ReDim arr0(1 To 3, 0 To db)
    Do While Not EOF(csv)
    Line Input #csv, sLine
    arr = Split(sLine, ";")
    i = UBound(arr) + 1
    If db = 0 Then o = i
    If i = 3 Then
    'Ha 3 részes a sor...
    db = db + 1
    ReDim Preserve arr0(1 To o, 0 To db)
    s = arr(0)
    'Töröljük az elejéről és/vagy a végéről a macskakörmöt
    If Left(s, 1) = Chr(34) Then s = Mid(s, 2)
    If Right(s, 1) = Chr(34) Then s = Left(s, Len(s) - 1)
    arr0(1, db) = s

    s = arr(1)
    If Left(s, 1) = Chr(34) Then s = Mid(s, 2)
    If Right(s, 1) = Chr(34) Then s = Left(s, Len(s) - 1)
    arr0(2, db) = s

    s = arr(2)
    If Left(s, 1) = Chr(34) Then s = Mid(s, 2)
    If Right(s, 1) = Chr(34) Then s = Left(s, Len(s) - 1)
    arr0(3, db) = s
    Else
    '...ha nem, akkor az előző végéhez írjuk.
    s = sLine
    If Left(s, 1) = Chr(34) Then s = Mid(s, 2)
    If Right(s, 1) = Chr(34) Then s = Left(s, Len(s) - 1)
    arr0(3, db) = arr0(3, db) & vbCrLf & s
    End If
    Loop
    Close #csv

    For i = 1 To db
    For j = 1 To o
    Cells(i, j) = arr0(j, i)
    Next j
    Next i
    End Sub

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

Hirdetés