Lấy hàng loạt file .Dat vào Excel (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Loan Châu

Thành viên hoạt động
Tham gia
17/6/17
Bài viết
136
Được thích
39
Giới tính
Nữ
Kính chào quý anh chị,
Hiện em có khó khăn rất trong công việc mong quý anh chị giúp cho em với.
khó khăn của em đó là có hàng nghìn file .dat (tương tự .TXT dung notepad để mở lên). em gởi kèm file và khó khăn em nêu rõ trong file rồi.
em cảm ơn quý anh chị nhiều nhiều trước nhé !
Trân trọng,
em Loan Châu
 

File đính kèm

Chỉnh lại code trước chút xíu thôi mà
Mã:
Public Sub ImportTxt_ToExcel()
Dim Fso As Object, TextSource As Object, TotalLines, Item, Tmp
Dim K As Long, I As Long, sArr(1 To 500000, 1 To 7), Tem, J As Long

Set Fso = CreateObject("Scripting.FileSystemObject")
Application.ScreenUpdating = False

MsgBox "Chon File TXT Import" & Chr(10) & "(Co the chon Nhieu File de Import)"
With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = True
    .Filters.Add "TXT File", "*.dat", 1
    If Not .Show = -1 Then
        MsgBox "Ban chua chon File", vbInformation, "----Mr.GPE----"
        Exit Sub
    End If
On Error Resume Next
For Each Item In .SelectedItems
    Set TextSource = Fso.OpenTextFile(Item, 1, , -2)
        TotalLines = Split(TextSource.ReadAll, vbCrLf)
        For I = LBound(TotalLines) To UBound(TotalLines)
            If Len(TotalLines(I)) Then
            Tmp = Split(TotalLines(I), vbTab)
                K = K + 1
                For J = LBound(Tmp) To 4
                    Tem = Split(Tmp(J), ",")
                    sArr(K, J + 1) = Tem(J)
                    sArr(K, 6) = Tem(5)
                Next
                    sArr(K, 7) = Fso.GetBaseName(Item)
            End If
        Next
Next
End With
If K Then
    Range("H1").CurrentRegion.ClearContents
    Range("H1").Resize(K, 7).Value = sArr
End If
MsgBox "Done!"
Application.ScreenUpdating = True
End Sub
Bác cho em hỏi chút.
Tại sao phải Split qua 1 bước với "vbTab" ạ?
 
Upvote 0
Chỉnh lại code trước chút xíu thôi mà
Mã:
Public Sub ImportTxt_ToExcel()
Dim Fso As Object, TextSource As Object, TotalLines, Item, Tmp
Dim K As Long, I As Long, sArr(1 To 500000, 1 To 7), Tem, J As Long

Set Fso = CreateObject("Scripting.FileSystemObject")
Application.ScreenUpdating = False

MsgBox "Chon File TXT Import" & Chr(10) & "(Co the chon Nhieu File de Import)"
With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = True
    .Filters.Add "TXT File", "*.dat", 1
    If Not .Show = -1 Then
        MsgBox "Ban chua chon File", vbInformation, "----Mr.GPE----"
        Exit Sub
    End If
On Error Resume Next
For Each Item In .SelectedItems
    Set TextSource = Fso.OpenTextFile(Item, 1, , -2)
        TotalLines = Split(TextSource.ReadAll, vbCrLf)
        For I = LBound(TotalLines) To UBound(TotalLines)
            If Len(TotalLines(I)) Then
            Tmp = Split(TotalLines(I), vbTab)
                K = K + 1
                For J = LBound(Tmp) To 4
                    Tem = Split(Tmp(J), ",")
                    sArr(K, J + 1) = Tem(J)
                    sArr(K, 6) = Tem(5)
                Next
                    sArr(K, 7) = Fso.GetBaseName(Item)
            End If
        Next
Next
End With
If K Then
    Range("H1").CurrentRegion.ClearContents
    Range("H1").Resize(K, 7).Value = sArr
End If
MsgBox "Done!"
Application.ScreenUpdating = True
End Sub
em cảm ơn anh hpkhuong nhiều nhé! Đúng là code của anh quá tuyệt vời. anh bảo chỉ sữa code trước chút xíu mà em lấy cả 2 code so sánh. em vẫn thấy nó khó khó là.
Chúc anh tuần mới nhiều sức khỏe và nhiều niềm vui !
Trân trọng,
 
Upvote 0
em cảm ơn anh hpkhuong nhiều nhé! Đúng là code của anh quá tuyệt vời. anh bảo chỉ sữa code trước chút xíu mà em lấy cả 2 code so sánh. em vẫn thấy nó khó khó là.
Chúc anh tuần mới nhiều sức khỏe và nhiều niềm vui !
Trân trọng,

à bạn nên biết cái chữ "chút xíu" của anh hpkhuong không giống cái bạn nghĩ. "Đàn ông nông nổi giếng khơi" mà
 
Upvote 0
Code là của ông Biu gét ấy... Tôi chỉ là người xài thôi -> không phải của tôi nhé!
Chào anh hpkhuong !
Của ai nhưng anh ứng dung được nó là quá giỏi rồi. em nhớ có ai từng nói " người giỏi là người biết đứng trên vai người khổng lồ".
Thêm lần nữa em cảm ơn anh nhé!
 
Upvote 0
Chào anh hpkhuong !
Của ai nhưng anh ứng dung được nó là quá giỏi rồi. em nhớ có ai từng nói " người giỏi là người biết đứng trên vai người khổng lồ".
Thêm lần nữa em cảm ơn anh nhé!

Người đứng trên vai ngừoi đứng trên vai ngừoi khổng lồ cũng giỏi luôn.
Nhưng ngừoi trỏ ra cái vai để đứng là ngừoi giỏi nhất (ai vậy ta?)
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom