xuất file txt qua excel (1 người xem)

Liên hệ QC

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

huonglien1901

GPE là ngôi nhà thứ 2 của tôi!!!
Tham gia
17/4/16
Bài viết
2,701
Được thích
2,434
Giới tính
Nam
Nghề nghiệp
Nhân viên kỹ thuật in ấn
Chào Anh/Chị trên diễn đàn!

Em có vấn đề nhờ mọi người viết code giúp em.

Em có file TXT như thế này.

NHAN VIEN,00036539,2009/01/14,05:02:33
ADRESSE,12,1
ARTICLE,8852263163839,1
ARTICLE,8852263163839,12
ARTICLE,8852263163853,12
ARTICLE,8852263163723,12
ARTICLE,8852263163716,12

Em chỉ muốn lấy dữ liệu từ dòng thứ 2.
Số 12: sẽ đưa vào cột Zone
Số 1: sẽ đưa vào cột ALLEY
Dòng thứ 3 sẽ lấy cột thứ 2 và cột thứ 3.
ARTICLE,8852263163839,1
8852263163839 sẽ đưa vào cột TILLCODE.
Số 1: sẽ đưa vào cột QUANLITY
Và khi thêm file text số thứ tự sẽ sắp xếp tăng dần đều. 1,2,3,4.....
khi thêm File text thứ 2 thì số thứ tự sẽ bắt đầu từ 1.

Em có những vấn đề trên nhờ mọi người giúp.

Em cảm ơn mọi người nhiều!
 

File đính kèm

nhét hết các file đuôi .txt vào chung 1 thư mục rồi chạy code thử, chưa chắc đã đúng .

Mã:
Public Sub hello()
Dim str As String, arr(1 To 100000, 1 To 5), r As Long, tmp, k As Long
Dim stt As Long, header, body, folderPath


With Application.FileDialog(msoFileDialogFolderPicker)
    If .Show <> -1 Then Exit Sub
    folderPath = .SelectedItems(1)
End With


str = "CMD /c @ECHO OFF && FOR %A IN (""" & folderPath & "\*.txt" & """) DO ( more +1 ""%A"")"
str = CreateObject("WScript.Shell").exec(str).StdOut.ReadAll
tmp = Split(str, vbCrLf)
For r = 0 To UBound(tmp) Step 1
    If InStr(tmp(r), "ADRESSE") > 0 Then
        header = Split(tmp(r), ",")
        stt = 0
    ElseIf InStr(tmp(r), "ARTICLE") > 0 Then
        stt = stt + 1: k = k + 1
        body = Split(tmp(r), ",")
        arr(k, 1) = stt
        arr(k, 2) = header(1)
        arr(k, 3) = header(2)
        arr(k, 4) = body(1)
        arr(k, 5) = body(2)
    End If
Next
If k > 0 Then Sheet1.Range("A100000").End(xlUp).Offset(1).Resize(k, UBound(arr, 2)).Value = arr
End Sub
 
Upvote 0
Cặp đôi về xuất file text vào excel }}}}}}}}}}

-----------
@ huonglien1901

Không được gửi nhiều bài cùng một nội dung.
http://www.giaiphapexcel.com/forum/showthread.php?122727-xuát-file-txt-qua-excel

Dạ, tại vì công việc nên em cần mọi người hỗ trợ đó anh. nên em gửi lại bài nhờ mấy anh chị hỗ trợ đó anh, thông cảm cho sự bất tiện này!

Vậy mong anh hỗ trợ giúp em với
 
Lần chỉnh sửa cuối:
Upvote 0
nhét hết các file đuôi .txt vào chung 1 thư mục rồi chạy code thử, chưa chắc đã đúng .

Mã:
Public Sub hello()
Dim str As String, arr(1 To 100000, 1 To 5), r As Long, tmp, k As Long
Dim stt As Long, header, body, folderPath


With Application.FileDialog(msoFileDialogFolderPicker)
    If .Show <> -1 Then Exit Sub
    folderPath = .SelectedItems(1)
End With


str = "CMD /c @ECHO OFF && FOR %A IN (""" & folderPath & "\*.txt" & """) DO ( more +1 ""%A"")"
str = CreateObject("WScript.Shell").exec(str).StdOut.ReadAll
tmp = Split(str, vbCrLf)
For r = 0 To UBound(tmp) Step 1
    If InStr(tmp(r), "ADRESSE") > 0 Then
        header = Split(tmp(r), ",")
        stt = 0
    ElseIf InStr(tmp(r), "ARTICLE") > 0 Then
        stt = stt + 1: k = k + 1
        body = Split(tmp(r), ",")
        arr(k, 1) = stt
        arr(k, 2) = header(1)
        arr(k, 3) = header(2)
        arr(k, 4) = body(1)
        arr(k, 5) = body(2)
    End If
Next
If k > 0 Then Sheet1.Range("A100000").End(xlUp).Offset(1).Resize(k, UBound(arr, 2)).Value = arr
End Sub

em cảm ơn Anh đã hỗ trợ giúp em, Chúc anh ngày cuối tuần vui vẻ!
Anh ơi cho em hỏi dòng này có ý nghĩa gì?
str = "CMD /c @ECHO OFF && FOR %A IN (""" & folderPath & "\*.txt" & """) DO ( more +1 ""%A"")"
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom