Tách, gộp dữ liệu trên nhiều file

Liên hệ QC

huuthang_bd

Chuyên gia GPE
Tham gia
10/9/08
Bài viết
8,709
Được thích
10,814
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Thợ đụng
Thấy có nhiều bạn hỏi về tách, gộp dữ liệu trên nhiều file Excel. Tôi xin gửi tặng các bạn file mà tôi đang dùng để thực hiện việc này.

Bạn nào không rõ về cách sử dụng thì có thể hỏi tại topic này.
Ai có nhu cầu sử dụng nhiều thì có thể save thành Add-in để dùng cho tiện.

Mong nhận được nhiều ý kiến đóng góp để Add-in này được hoàn thiện hơn.
 

File đính kèm

  • Join and Split data.rar
    30.6 KB · Đọc: 621
Khi mở form, click chọn Tab 2, xong click sang tab khác, chọn lại tab2 nó lỗi ở dòng sau:

Mã:
Private Sub CBSelectBookSh_Change()
On Error Resume Next
Dim Sh As Worksheet
  [COLOR=red][B]  Windows(CBSelectBookSh.Value).Activate[/B][/COLOR]
    LBDataSh.Clear
    For Each Sh In ActiveWorkbook.Sheets
        LBDataSh.AddItem Sh.Name
    Next
End Sub
 
Khi mở form, click chọn Tab 2, xong click sang tab khác, chọn lại tab2 nó lỗi ở dòng sau:

Mã:
Private Sub CBSelectBookSh_Change()
On Error Resume Next
Dim Sh As Worksheet
  [COLOR=red][B]  Windows(CBSelectBookSh.Value).Activate[/B][/COLOR]
    LBDataSh.Clear
    For Each Sh In ActiveWorkbook.Sheets
        LBDataSh.AddItem Sh.Name
    Next
End Sub
Tôi test nhiều lần vẫn không thấy xuất hiện lỗi như anh nói. Nhờ mọi người kiểm tra lại giùm.
 
Bạn xem cái lỗi nó nhé
Em không thấy lỗi này không biết sao nữa mà máy em không bị lỗi
T0 huuthang sao mình test thì nó luôn cho ra workbook mới vậy mà với lại không đúng yêu cầu của mình nó chỉ gom dữ liệu vào 1 sheet thôi không phải từng sheet không biết sao nữa, bạn xem lại giúp nhen. Thanks
 
Em không thấy lỗi này không biết sao nữa mà máy em không bị lỗi
T0 huuthang sao mình test thì nó luôn cho ra workbook mới vậy mà với lại không đúng yêu cầu của mình nó chỉ gom dữ liệu vào 1 sheet thôi không phải từng sheet không biết sao nữa, bạn xem lại giúp nhen. Thanks
Cái này là tôi viết chung, có thể dùng cho nhiều trường hợp nên kết quả sẽ được kết xuất ra một file mới. Và kết quả chỉ lưu vào 1 sheet. Nêu muốn áp dụng riêng cho trường hợp của bạn bạn phải sửa code lại theo nhu cầu của mình.
 
Cái này là tôi viết chung, có thể dùng cho nhiều trường hợp nên kết quả sẽ được kết xuất ra một file mới. Và kết quả chỉ lưu vào 1 sheet. Nêu muốn áp dụng riêng cho trường hợp của bạn bạn phải sửa code lại theo nhu cầu của mình.
Vậy Huuthang có thể giúp mình sửa code lại được không, thật sự nhìn vào đoạn code của bạn mình không hiểu bắt đầu từ đâu hết. Thanks
 
Vậy Huuthang có thể giúp mình sửa code lại được không, thật sự nhìn vào đoạn code của bạn mình không hiểu bắt đầu từ đâu hết. Thanks
Trường hợp của bạn thì tôi viết riêng cho bạn file này.

Bạn cũng có thể dùng file ở bài #1 topic này gộp hết dữ liệu vào 1 sheet sau đó viết code để tách ra thành nhiều sheet theo nhu cầu của bạn.
 

File đính kèm

  • Tonghop_CN.xls
    52.5 KB · Đọc: 1,485
Trường hợp của bạn thì tôi viết riêng cho bạn file này.

Bạn cũng có thể dùng file ở bài #1 topic này gộp hết dữ liệu vào 1 sheet sau đó viết code để tách ra thành nhiều sheet theo nhu cầu của bạn.
Cái này mình sẽ nghiên cứu để viết code tách ra theo hướng này. Code bạn rất đúng với ý mình xin cảm ơn bạn Huuthang nhiều &&&%$R&&&%$R
 
Trong thể Join data from multiple tất cả các sheet hiện lên. Mình muốn xóa vĩnh viễn 1 hoặc nhiều sheet này thì phải làm sao?. Xin tác giã hướng dẫn thêm.Xin cám ơn
 
Trong thể Join data from multiple tất cả các sheet hiện lên. Mình muốn xóa vĩnh viễn 1 hoặc nhiều sheet này thì phải làm sao?. Xin tác giã hướng dẫn thêm.Xin cám ơn
Công cụ này chỉ hỗ trợ việc tách và gộp dữ liệu, kết quả sẽ được tạo trên file mới. Không hỗ trợ xử lý dữ liệu trên file gốc.
Nếu muốn xóa sheet thì bạn xóa bằng tay, cũng không mất nhiều thời gian đâu.
 
Cám ơn Tác giã nhiều. Mình muốn cho nó Pro và tiện lợi chút đó mà.
 
worksheets("ten sheet").delete
Không biết xài dc không nhỉ?!

huuthang bd đã viết:
Khi mở form, click chọn Tab 2, xong click sang tab khác, chọn lại tab2 nó lỗi
Có lẽ bạn đang xài office 2007 đúng không? excel 2007 có lẽ có nhiều chổ cần dc bug lại, nhất là add-ins và macro, hai chổ này hay bị lỗi nhất. Để anh lành mà sống hạnh phúc thì nên trung thành với excel 2003 thì hơn :D
 
Chỉnh sửa lần cuối bởi điều hành viên:
Thấy có nhiều bạn hỏi về tách, gộp dữ liệu trên nhiều file Excel. Tôi xin gửi tặng các bạn file mà tôi đang dùng để thực hiện việc này.

Bạn nào không rõ về cách sử dụng thì có thể hỏi tại topic này.
Ai có nhu cầu sử dụng nhiều thì có thể save thành Add-in để dùng cho tiện.

Mong nhận được nhiều ý kiến đóng góp để Add-in này được hoàn thiện hơn.
Anh ơi, em thấy đề tài này rất hay, em đã tải file đính kèm về, thấy toàn tiếng anh (mà em lại dốt ), vậy mong anh nói qua về cách sử dụng file đó được không ạ???
Nhân tiện cho em hỏi, khi mình dùng 2 file excel , vậy có cách nào để 2file đó khi copy sang cách máy khác để mở luôn hiện cùng nhau không ạ (khi tích vào 1 file trung gian thì hiện 2 file đó trên màn hình cùng lúc)

Chân thành cảm ơn!!!
 
Xin giúp đỡ (tổng hợp dữ liệu từ nhiều sheet khi tên sheet thay đổi)

Chào anh huuthang_bd, em có 1 file excel trong file có nhiều sheet, tên sheet sẽ thay đổi theo nhu cầu sử dụng của từng mã hàng. Sau khi em tính toán xong em muốn kết quả của tất cả các sheet kia sẽ được tổng hợp trên sheet [TongHop]. (Thay vì em phải in ra tất cả các sheet để nộp thì em muốn tổng hợp lại sau đó chỉ nộp 1 bảng tổng hợp thôi cho dễ quan sát & kiểm tra.) Nếu như tên sheet không thay đổi em có thể làm dễ dàng nhưng khi tên sheet thay đổi em không làm được mong anh giúp đỡ. Xin cản ơn.
 

File đính kèm

  • FORM TINH DINH MUC PHU LIEU.rar
    99.4 KB · Đọc: 378
Anh ơi, em thấy đề tài này rất hay, em đã tải file đính kèm về, thấy toàn tiếng anh (mà em lại dốt ), vậy mong anh nói qua về cách sử dụng file đó được không ạ???
Nhân tiện cho em hỏi, khi mình dùng 2 file excel , vậy có cách nào để 2file đó khi copy sang cách máy khác để mở luôn hiện cùng nhau không ạ (khi tích vào 1 file trung gian thì hiện 2 file đó trên màn hình cùng lúc)

Chân thành cảm ơn!!!
Tôi cũng dốt tiếng Anh thôi nhưng do có một số chỗ trên Form không viết tiếng Việt có dấu được nên đành dùng tiếng Anh hết. Tôi hướng dẫn sơ qua thế này:
Thẻ 1: Gộp dữ liệu trong nhiều file vào 1 sheet
- Add: Chọn những file sẽ gộp dữ liệu.
-Delete: Xóa file đã chọn
-Delete All: Xóa hết file đã chọn
-All Sheets: Gộp hết các sheet có trong file
-Sheet Index: Chỉ gộp sheet thứ n trong mỗi file (n được chọn từ Combobox bên cạnh)
-Sheet Name: Chỉ gộp sheet tên abc trong mỗi file (abc được chọn từ Combobox bên cạnh)
-First Cell: Ô đầu tiên của vùng dữ liệu sẽ gộp (Click vào Textbox bên cạnh để chọn)
-End Column: Cột cuối cùng của dữ liệu sẽ gộp (Click vào Textbox bên cạnh để chọn)
-End Row: Dòng cuối cùng của dữ liệu sẽ gộp (Click vào Textbox bên cạnh để chọn)
-End Row of columns: Dòng cuối cùng của dữ liệu sẽ gộp là dòng cuối cùng có dữ liệu trong các cột x:y (Click vào Textbox bên cạnh để chọn)
Thẻ 2: Gộp dữ liệu trong các sheet của cùng 1 file vào 1 sheet
- Select Workbook: Chọn Workbook muốn ghép (nếu Workbook đã được mở)
- Open: Mở Workbook muốn ghép (nếu Workbook chưa được mở)
- Các tùy chọn và nút lệnh khác tương tự như trên
Thẻ 3: Gộp các sheet trong nhiều file vào chung một file
- New Sheet Name: Dùng để đặt tên mới cho các sheet:
+ File Name: Đưa tên file cũ vào tên Sheet mới
+ Delimiters: Dấu phân cách (Nhập vào Textbox bên cạnh)
+ 1,2,3...: Đặt tên Sheet theo số thứ tự
+ Old sheet name: Lấy lại tên sheet cũ
- Các tùy chọn và nút lệnh khác tương tự như trên
Thẻ 4: Tách các sheet trong 1 file thành nhiều file với mỗi file có 1 sheet của file cũ.
 
Dear anh huuthang_bd,
Cảm ơn Anh đã chi sẻ marco tách, gộp các sheet đặc biệt có cửa sổ tương tác rất thân thiện với người dùng. Nó thực sự rất hữu ích cho công việc của Em.
Em vừa thử ghép nhiều sheet khác nhau trong cùng 1 file excel dữ liệu thấy vấn đề mong Anh trợ giúp.
- Ở các sheet khác nhau thì số bản ghi/số dòng là khác nhau
- Khi gộp sheet với. Kết quả luôn cố định số bản ghi được copy ở các sheet khác nhau. Điều này dẫn đến chúng ta phải mất công xóa số bản ghi trống đó.
Cảm ơn Anh, chúc anh nhiều niềm vui trong công việc và cuộc sống
 
Dear anh huuthang_bd,
Cảm ơn Anh đã chi sẻ marco tách, gộp các sheet đặc biệt có cửa sổ tương tác rất thân thiện với người dùng. Nó thực sự rất hữu ích cho công việc của Em.
Em vừa thử ghép nhiều sheet khác nhau trong cùng 1 file excel dữ liệu thấy vấn đề mong Anh trợ giúp.
- Ở các sheet khác nhau thì số bản ghi/số dòng là khác nhau
- Khi gộp sheet với. Kết quả luôn cố định số bản ghi được copy ở các sheet khác nhau. Điều này dẫn đến chúng ta phải mất công xóa số bản ghi trống đó.
Cảm ơn Anh, chúc anh nhiều niềm vui trong công việc và cuộc sống

Tôi có tùy chọn để người sử dụng tùy biến theo từng trường hợp mà. Nếu số dòng trong các sheet là khác nhau thì ở vùng End Row bạn chọn dòng End row of rồi chọn các cột dữ liệu của bạn.

Ví dụ bạn chọn End row of A:Fthì code sẽ tự động lấy dữ liệu đến dòng cuối cùng có dữ liệu trong các cột từ A đến F của các Sheet.

Bạn thử lại xem.
 
Bạn ơi, mình cũng đang có 1 bài toán là copy nguyên 1 worksheet (ví dụ tên A) vào 1 file excel mẹ(ví dụ file B), đã thử đoạn code của bạn gữi cho nmhung49, nhưng đọc ko hiểu lắm, nên ko biết sửa từ đâu. -+*/ Bài toán của mình cũng gần giống yêu cầu của bạn nmhung49, nhưng cần giữ nguyên data trong worksheet A, và có thể move sheet A này lên thành sheet đứng đầu trong file B đc ko?

Cám ơn bạn nhiều nhé
 
Bạn ơi, mình cũng đang có 1 bài toán là copy nguyên 1 worksheet (ví dụ tên A) vào 1 file excel mẹ(ví dụ file B), đã thử đoạn code của bạn gữi cho nmhung49, nhưng đọc ko hiểu lắm, nên ko biết sửa từ đâu. -+*/ Bài toán của mình cũng gần giống yêu cầu của bạn nmhung49, nhưng cần giữ nguyên data trong worksheet A, và có thể move sheet A này lên thành sheet đứng đầu trong file B đc ko?

Cám ơn bạn nhiều nhé
Addin này để dụng chung cho nhiều trường hợp một cách tổng quát nên không thể sửa theo từng yêu cầu được nha bạn. Bạn có thể mở topic mới để hỏi về trường hợp của bạn.
 
Web KT
Back
Top Bottom