Trộn dữ liệu từ Excel sang Word mở rộng (phiên bản ongke0711)

Liên hệ QC

ongke0711

Thành viên gắn bó
Tham gia
7/9/06
Bài viết
1,954
Được thích
2,537
Giới tính
Nam
(Xin phép được tách bài từ bài post của bác Maika8008 (Link) để tránh lẫn lộn khi trao đổi và do cũng tài lanh xen vào, gây loãng bài của bác ấy).


Trộn dữ liệu từ Excel sang Word
-------------------------------------------------------------------------------------------

Lấy cảm hứng từ ý tưởng và file của bác Maika8008, tôi cũng thiết kế một phiên bản khác cho việc Trộn dữ liệu từ Excel sang Word.
Phiên bản này tổng hợp các nhu cầu thực tế của người dùng đã trao đổi trong chủ để này, có thể chưa đầy đủ nhưng cũng đáp ứng cơ bản cho công việc.

* Các chức năng:
- Tùy chọn trộn dữ liệu: Một (hoặc nhiều) đối tượng cho một (hoặc nhiều) văn bản.
- Tự động tạo tiêu đề cột riêng, không ảnh hưởng đến thiết kế bảng.
- Không cần cố định vị trí (dòng, cột ) của dữ liệu cần trộn vì dùng tham chiếu qua Table name.
- Chỉ lấy những dòng dữ liệu sau khi dùng Filter trong bảng dữ liệu.
- Khắc phục lỗi khi trộn đoạn văn bản nhiều hơn 255 ký tự.
- Trộn có kèm luôn file hình ảnh (.jpg, .png, .bmp).
- Trộn các Symbols (font Wingdings, Marlett, Webdings)
- Xuất file dạng .Docx, .PDF


>> Cập nhật ngày 11/10/2023:
- Trộn bảng biểu Excel vào Word Table, giữ nguyên định dạng thiết kế trong Excel.

Thiết kế cũng chưa bẫy lỗi gì nhiều, chắc chắn sẽ phát sinh lỗi khi thao tác, các bạn chạy kiểm tra thử nhé.
Tôi cũng đã thử dùng kết hợp tính năng Mail Merger có sẵn trong Word + VBA cho các tùy chọn nhưng tốc độ thực thi cũng không bằng một góc so với việc dùng thẳng Mail Merge (*) trong Word vì dù gì thì nó cũng đã qua code VBA để gọi tính năng Merge.

(*) Dùng Mail Merge trong Word rất nhanh nhưng nó chỉ đáp ứng tùy chọn cơ bản, đó là lý do có nhiều công cụ viết mở rộng thêm cho tính năng này.

Mã:
wdocSource.MailMerge.OpenDataSource...






3qgQKVn.png






Hướng dẫn sử dụng trong video.


* Đã cập nhật bẫy lỗi và chuyển sang kết nối muộn (Late binding) với Word để tránh lỗi giữa các phiên bản Office.

Link file (full code): https://www.mediafire.com/file/8fc086iogo32cie/MergeDataExcel2Word.zip/file
 
Lần chỉnh sửa cuối:
Đã cập nhật file ở bài #1
------------------------------------------------
Cập nhật, sửa các lỗi như:
- Tên folder tiếng Việt có dấu.
- Chuỗi văn bản có ký tự xuống dòng.
- Không lưu đè file nếu trùng tên.
- Bẫy một số lỗi linh tinh khi thao tác

Còn vụ tạo Folder riêng thì rảnh sẽ thêm nhé.
 
Upvote 0
Không biết anh ongke0711 đã cập nhật vụ tạo Folder riêng chưa anh. Hóng quá anh à
 
Upvote 0
Chuyển thành addin đi anh
 
Upvote 0
Đã thêm phần tạo Folder riêng cho từng đối tượng (dòng) dữ liệu rồi nhé.
Cơ bản là đáp ứng nhu cầu chung đa số thôi, còn các nhu cầu riêng biệt nữa thì ứng dụng không đáp ứng được nhé.

CleanShot 2022-07-09 at 10.47.16@2x.jpg


Tải lại link bài #1
 
Upvote 0
Cảm ơn Bác đã cập nhật thêm phần tạo Foder
 
Upvote 0
Cảm ơn Bác Vậy.
 
Lần chỉnh sửa cuối:
Upvote 0
Đã thêm phần tạo Folder riêng cho từng đối tượng (dòng) dữ liệu rồi nhé.
Cơ bản là đáp ứng nhu cầu chung đa số thôi, còn các nhu cầu riêng biệt nữa thì ứng dụng không đáp ứng được nhé.

View attachment 278580


Tải lại link bài #1
Hi anh,
Về tạo folder thay vì tạo cho từng dòng dữ liệu anh có thể thay thế bằng tính năng tạo folder theo tên của một cột chỉ định (Có thể nhóm nhiều file kết quả lại nếu chung 1 nhóm) như tên của file được không anh. Theo em nhu cầu sử dụng thực tế sẽ cao hơn nhiều so với tạo từng dòng dữ liệu.
Ví dụ: 1 danh sách gồm 100 học sinh, chia làm 4 lớp, sẽ có cột tên học sinh và cột tên lớp. Như việc việc trộn danh sách giấy mời họp phụ huynh sẽ tự động nhóm lại theo thư mục của từng lớp. Như vậy sẽ tiện hơn phải chạy 4 lần trộn.
 
Upvote 0
Hi anh,
Về tạo folder thay vì tạo cho từng dòng dữ liệu anh có thể thay thế bằng tính năng tạo folder theo tên của một cột chỉ định (Có thể nhóm nhiều file kết quả lại nếu chung 1 nhóm) như tên của file được không anh. Theo em nhu cầu sử dụng thực tế sẽ cao hơn nhiều so với tạo từng dòng dữ liệu.
Ví dụ: 1 danh sách gồm 100 học sinh, chia làm 4 lớp, sẽ có cột tên học sinh và cột tên lớp. Như việc việc trộn danh sách giấy mời họp phụ huynh sẽ tự động nhóm lại theo thư mục của từng lớp. Như vậy sẽ tiện hơn phải chạy 4 lần trộn.
Số lần trộn là như nhau chỉ có tác vụ tạo Folder là nhiều hơn so với nhóm.

Tôi túm lại các yêu cầu như sau:
- Bạn Li hiệp sĩ: chống ghi đè nếu có mấy người trùng tên trong danh sách.
- Bạn Thuy2022: nếu in cùng trộn một lúc nhiều file Word cho cùng 1 đối tượng (1 dòng dữ liệu) thì gộp chung vào một folder cho dễ quản lý
- Bạn tieutuvodanh192: thì muốn gom các đối tượng cùng nhóm và tạo folder chung cho nhóm đó để lưu.
Nói chung ai cũng có nhu cầu hợp lý nhưng các bạn có suy nghĩ nếu gộp chung các yêu cầu đó lại (vì các bạn cũng sẽ gặp như vậy) thì giải thuật xử lý là như thế nào chưa?
Các bạn cùng đóng góp, nghĩ thử xem cách xử lý file, folder như thế nào để đáp ứng 3 yêu cầu trên nhé, hoặc đáp ứng 2/3 hoặc sẽ gặp những tình huống nào sẽ chạy không đúng nữa hoặc phải qui định như thế nào để chạy đúng.... :)
Tôi thì đã có giải pháp rồi nhưng có thể chưa đầy đủ, chờ các góp ý của các bạn.
 
Upvote 0
Ý kiến cá nhân em. Phần trùng tên tạo hộp thông báo có ghi đè hay ko. Thứa 2 phần gom đối tượng thì ta lọc ra và xuất thui Vì đã có chức năng bỏ qua dòng ẩn
 
Upvote 0
Tạo cái thông báo như anh soap1234 cỏ vẻ ổn anh à
Bài đã được tự động gộp:

Tạo cái thông báo như anh soap1234 cỏ vẻ ổn anh à
 
Upvote 0
Số lần trộn là như nhau chỉ có tác vụ tạo Folder là nhiều hơn so với nhóm.

Tôi túm lại các yêu cầu như sau:
- Bạn Li hiệp sĩ: chống ghi đè nếu có mấy người trùng tên trong danh sách.
- Bạn Thuy2022: nếu in cùng trộn một lúc nhiều file Word cho cùng 1 đối tượng (1 dòng dữ liệu) thì gộp chung vào một folder cho dễ quản lý
- Bạn tieutuvodanh192: thì muốn gom các đối tượng cùng nhóm và tạo folder chung cho nhóm đó để lưu.
Nói chung ai cũng có nhu cầu hợp lý nhưng các bạn có suy nghĩ nếu gộp chung các yêu cầu đó lại (vì các bạn cũng sẽ gặp như vậy) thì giải thuật xử lý là như thế nào chưa?
Các bạn cùng đóng góp, nghĩ thử xem cách xử lý file, folder như thế nào để đáp ứng 3 yêu cầu trên nhé, hoặc đáp ứng 2/3 hoặc sẽ gặp những tình huống nào sẽ chạy không đúng nữa hoặc phải qui định như thế nào để chạy đúng.... :)
Tôi thì đã có giải pháp rồi nhưng có thể chưa đầy đủ, chờ các góp ý của các bạn.

Hi anh,
Không biết ý em như bên dưới có thiếu sót gì không :D

1/ chống ghi đè nếu có mấy người trùng tên trong danh sách. -> Lưu tên file đâu nhất thiết phải sử dụng cột tên, lấy cột khác có ký hiệu phân biệt là được mà.

2/ nếu in cùng trộn một lúc nhiều file Word cho cùng 1 đối tượng (1 dòng dữ liệu) thì gộp chung vào một folder cho dễ quản lý
3/ thì muốn gom các đối tượng cùng nhóm và tạo folder chung cho nhóm đó để lưu.
=> 2 yêu cầu này gộp chung được mà, nếu muốn lưu file trong 1 folder nào đấy thì tạo mới (nếu chưa có folder đó) hoặc ghi file vào folder, folder được xác định theo 1 cột như cột tên file.

Em thì chưa có nhu cầu sử dụng file của anh nhiều, tuy nhiên em có share file cho mấy bạn làm ở trường học, đợt rồi phát giấy mời tổng kết cho gần 1700 cháu, đỡ được rất nhiều thời gian. Qua sử dụng thì các bạn thấy có báo lại em nếu chia theo lớp luôn thì quá ok luôn anh.
 
Upvote 0
Đã thêm phần tạo Folder riêng cho từng đối tượng (dòng) dữ liệu rồi nhé.
Cơ bản là đáp ứng nhu cầu chung đa số thôi, còn các nhu cầu riêng biệt nữa thì ứng dụng không đáp ứng được nhé.

View attachment 278580


Tải lại link bài #1
E có 1 file trộn Như thế này ạ giờ muốn trộn với file demo như A tạo. Vậy trong file excle cần thay đổi hay sửa gì để khi trộn thì: 1. mục "Thời gian hưởng từ ngày....... đến ngày......." theo tổng số tháng hưởng phía trên ạ.
2. Phần phụ lục thông báo, các ngày thông báo được tính và thiết kế như thế nào để nhảy từ ngày hưởng đến các tháng tiếp theo nhưng vẫn trừ thứ 7, chủ nhật và nghỉ lễ ạ.
E đã tìm hiều và cũng áp dụng hàm WORKDAY.INTL nhưng vẫn bị sai.
E xin cảm ơn ạ
 

File đính kèm

  • QĐ mẫu llink với file Nhập TĐ.doc
    72 KB · Đọc: 14
Upvote 0
E có 1 file trộn Như thế này ạ giờ muốn trộn với file demo như A tạo. Vậy trong file excle cần thay đổi hay sửa gì để khi trộn thì: 1. mục "Thời gian hưởng từ ngày....... đến ngày......." theo tổng số tháng hưởng phía trên ạ.
2. Phần phụ lục thông báo, các ngày thông báo được tính và thiết kế như thế nào để nhảy từ ngày hưởng đến các tháng tiếp theo nhưng vẫn trừ thứ 7, chủ nhật và nghỉ lễ ạ.
E đã tìm hiều và cũng áp dụng hàm WORKDAY.INTL nhưng vẫn bị sai.
Bạn nên nhớ rằng bảng dữ liệu để trộn là bảng dữ liệu cuối cùng để chuyển qua file Word. Còn làm như thế nào để có những dữ liệu cuối cùng đó thì bạn phải xử lý trước trong Excel rồi chứ. Các mục 1, 2 bạn hỏi thì bạn phải đưa file Excel lên, tổ chức xây dựng bảng dữ liệu như thế nào, kết quả mong muốn như thế nào rồi thuần túy xử lý bảng tính chứ không liên quan gì đến việc trộn.
Việc tính các ngày làm việc trừ ngày nghỉ, lễ đã có nhiều bài viết trên GPE rồi, bạn chịu khó với nút tìm kiếm góc trên, bên phải nhé.
 
Upvote 1
Bạn nên nhớ rằng bảng dữ liệu để trộn là bảng dữ liệu cuối cùng để chuyển qua file Word. Còn làm như thế nào để có những dữ liệu cuối cùng đó thì bạn phải xử lý trước trong Excel rồi chứ. Các mục 1, 2 bạn hỏi thì bạn phải đưa file Excel lên, tổ chức xây dựng bảng dữ liệu như thế nào, kết quả mong muốn như thế nào rồi thuần túy xử lý bảng tính chứ không liên quan gì đến việc trộn.
Việc tính các ngày làm việc trừ ngày nghỉ, lễ đã có nhiều bài viết trên GPE rồi, bạn chịu khó với nút tìm kiếm góc trên, bên phải nhé.
Dạ. Cảm ơn A rất nhiều ạ. E xin phép gửi file để nhờ hỗ trợ ạ. Các nội dung trong file cần hỗ trợ E có comment ạ. và các mục trong phần 1a đến 12b ngoài việc lập công thức để xử lý thì có cách nào để nhảy theo số tháng hưởng được ko ạ?
E chân thành cảm ơn!
 

File đính kèm

  • MailMerge_vba1.xlsm
    96.8 KB · Đọc: 33
Upvote 0
Dạ. Cảm ơn A rất nhiều ạ. E xin phép gửi file để nhờ hỗ trợ ạ. Các nội dung trong file cần hỗ trợ E có comment ạ. và các mục trong phần 1a đến 12b ngoài việc lập công thức để xử lý thì có cách nào để nhảy theo số tháng hưởng được ko ạ?
Công thức Excel, tôi tệ lắm, hơn nữa tôi cũng không hiểu ý nghĩa các cột 1a - 12b là cái gì, làm sao tính ra được, tôi đọc công thức thì không hiểu gì cả nhé bạn. Bạn giải thích cho rõ vì không phải ai cũng hiểu được công việc, cách tính toán của bạn qua cái bảng tính này. Nhờ các bạn khác hỗ trợ giùm thôi. Tốt nhất là lập cái chủ đề khác liên quan đến xử lý công thức, tính toán cho file Excel của bạn.
 
Upvote 0
Web KT
Back
Top Bottom