Nhờ chỉ cách lọc dữ liệu từ excel và xuất ra nhiều file excel con khác

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Nhờ mọi người giúp mình lọc từng BRANCH ra các file riêng với mỗi BRANCH ứng với tên "BANGTHONGBAO_IDBRANCH_TenBRANCH". Dưới là file mẫu của mình với ít dữ liệu demo, vì dữ liệu thật hơn ngàn dòng.

Mình đã nghĩ theo phương pháp lọc sau đó copy paste vào từng file riêng rồi, nhưng mình muốn một giải pháp khác là sau khi chạy sẽ từ sinh ra các file tương ứng với tên từng file đã định trước. Rất mong mọi người giúp đỡ và cho giải pháp. Xin cảm ơn.

Bạn làm theo code của ai? Lỗi gì có trời mới biết…

Thích thì chạy code này xem…

Option Explicit

Public Sub GPE()
Dim Dic As Object, Tmp As String, Arr, Pth, ShMain As Worksheet
Dim I As Long, WbMain As Workbook, Rng As Range, Sh As Worksheet, Stt As Range, K As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.SheetsInNewWorkbook = 1
Set WbMain = ThisWorkbook
Set ShMain = WbMain.Sheets("BANGTHONGTIN")
Set Rng = ShMain.Range("A1").CurrentRegion
Pth = ActiveWorkbook.Path
Arr = Rng.Value
Set Dic = CreateObject("Scripting.Dictionary")
With Dic
For I = 2 To UBound(Arr)
Tmp = Arr(I, 2)
    If Not .Exists(Tmp) Then
        .Add Tmp, ""
        With Workbooks.Add
            Set Sh = .Sheets(1)
            Sh.Name = ShMain.Name
            Rng.AutoFilter 2, Tmp
            ShMain.Range("A1", Rng).SpecialCells(12).Copy
            Sh.Range("A1").PasteSpecial xlPasteColumnWidths
            Sh.Range("A1").PasteSpecial xlPasteAll
            Rng.AutoFilter
            Set Stt = Sh.Range("A2", Sh.Range("A65000").End(3))
                K = Stt.Rows.Count
                Stt = Application.Evaluate("Row(1:" & K & ")")
                Sh.Range("A1").CurrentRegion.Borders.LineStyle = 1
                .Close True, Pth & "BANGTHONGBAO_" & Arr(I, 8) & "_" & Tmp & ".xlsx"
        End With
    End If
Next I
End With
Set Dic = Nothing
ShMain.AutoFilterMode = False
Application.CutCopyMode = False
Application.SheetsInNewWorkbook = 3
MsgBox "Da Tach Xong!"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Code của bác quá tuyệt vời bác ạ, hầu như đáp ứng hết yêu cầu của mình, tuy nhiên vẫn bị lỗi kia nên xuất thiếu 10 file, mình tìm hiểu nó bị ngặt khúc nào thì thấy đến cái đoạn tên "BRANCH" có dạng dấu / là bị lỗi.

VD: TT_VAB/CBA

Mình đổi tên xóa dấu / ở đoạn này thì nó chạy trơn tru đến cuối luôn. Cảm ơn bác rất nhiều. }}}}}

Có 9 ký tự đặc biệt không được dùng để đặt tên cho tập tin. Bạn tham khảo mà tránh.


 /
 :
 *
 ?
 "
 <
 >
 |

Do file xuất từ database ra bác ạ. Tks bác

Ờ thì bấy lâu nay bạn tưởng rằng anh Bill cho bạn xài dấu / khi đặt Tên tệp tin cơ ah???–=0–=0–=0

Khuyến mại thêm cho bạn đoạn code ngắn gọn hơn code trên/chắc chạy nhanh hơn code cũ 1 xíu…và có lẽ là giữ lại đúng Format của Sheet gốc của bạn luôn…

Public Sub GPE_Copy()
Dim Dic As Object, Tmp As String, Arr, Pth, ShMain As Worksheet, I As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set ShMain = ThisWorkbook.Sheets("BANGTHONGTIN")
Pth = ThisWorkbook.Path
Arr = ShMain.Range("A1").CurrentRegion.Value
Set Dic = CreateObject("Scripting.Dictionary")
For I = 2 To UBound(Arr)
Tmp = Arr(I, 2)
    If Not Dic.Exists(Tmp) Then
        Dic.Add Tmp, ""
        ShMain.Copy
        With ActiveWorkbook.Sheets(1)
            .Range("A1").CurrentRegion.AutoFilter 2, "<>" & Tmp
            .Range("A1").CurrentRegion.Offset(1).EntireRow.Delete
            .AutoFilterMode = False
            .Range("A1").Value = "NO."
            .Range("A1").CurrentRegion.Borders.LineStyle = 1
            .Range("A2", .Range("A65000").End(3)) = Application.Evaluate("Row(1:" & .Range("A65000").End(3).Row - 1 & ")")
        End With
            ActiveWorkbook.Close True, Pth & "BANGTHONGBAO_" & Arr(I, 8) & "_" & Tmp & ".xlsx"
    End If
Next I
Set Dic = Nothing
Application.CutCopyMode = False
MsgBox "Da Tach Xong!"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

www.giaiphapexcel.com/diendan/threads/nh%E1%BB%9D-ch%E1%BB%89-c%C3%A1ch-l%E1%BB%8Dc-d%E1%BB%AF-li%E1%BB%87u-t%E1%BB%AB-excel-v%C3%A0-xu%E1%BA%A5t-ra-nhi%E1%BB%81u-file-excel-con-kh%C3%A1c.117244/

Kỹ năng giải quyết vấn đề hiệu quả
Khóa học SprinGO phù hợp

Kỹ năng giải quyết vấn đề hiệu quả

Mô tả Nội dung Đánh giá Tài nguyên KỸ NĂNG GIẢI QUYẾT VẤN ĐỀ HIỆU QUẢHiểu đúng vấn đề là một nửa của giải...

Xem khóa học
★★★★★ 5 ★ 1 👤 1 ▥ 0
Quảng cáo

Bạn nên đọc

Bình luận

Quảng cáo

Cũ vẫn chất

Xem thêm