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
2,012
Được thích
2,638
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ùng 1 bảng excel, khi e copy thủ công bằng tay thì không bị lỗi gì (Ví dụ như font chữ Time new roman như bảng dưới thì không sao).
Khi e sử dụng hàm thì bị lỗi hiển thị, font chữ chuyển sang Arial)
Vụ này thì tôi không biết rồi bạn. File tôi test thì không xảy ra như bạn nên cũng chưa biết cách xử lý ra sao.
Bạn gửi cái file của bạn lên đây xem như thế nào.
 
Upvote 0
Cùng 1 bảng excel, khi e copy thủ công bằng tay thì không bị lỗi gì (Ví dụ như font chữ Time new roman như bảng dưới thì không sao).
Khi e sử dụng hàm thì bị lỗi hiển thị, font chữ chuyển sang Arial)
Việc này tôi nghĩ là do style của Word. Bạn thử thay đổi các thông số về dinh dang font chữ trong style Normal.
 
Upvote 0
Cảm ơn bác rất nhiều. E đã xử lý được. chia sẻ file lên đây cho bác nào cần.
E đã chỉnh sửa 1 số để phù hợp nhu cầu sử dụng như sau:
- Tự động chọn hàng và cột của dữ liệu
- Chuyển nhập dữ liệu từ hàng thành cột
- Tự động tạo 1 thư mục với tên trong dữ liệu excel và lưu tất cả các file vào 1 thư mục đó
- Chuyển lưu tên lên trước để dễ quản lý file
Lưu ý: E có để số thứ tự nhập vào file word từ 01-50. Bác nào sử dụng nhập mục cần thay thế trong word theo cấu trúc [1]-[50].
Cho mình file mình tham khảo được không ạ. Mình cũng đang thiết kế lại file nhập liệu như vậy.
 
Upvote 0
Mình dùng Office 2010 bị lỗi này, có thể khắc phục được không các bạn, máy dùng Office 2013 thì không bị lỗi. Khổ lỗi mình làm cho các chi nhánh nên mỗi nơi 1 bản office. Plzz
1699548053195.png
 
Upvote 0
Mình dùng Office 2010 bị lỗi này, có thể khắc phục được không các bạn, máy dùng Office 2013 thì không bị lỗi. Khổ lỗi mình làm cho các chi nhánh nên mỗi nơi 1 bản office. Plzz
Bạn kiếm đoạn code tô màu xanh như hình rồi sửa lại như bên dưới xem thử.

Mã:
WordDoc.SaveAs2 sFullPathFile, FileFormat:=12
Nếu số 12 không được thì đổi thành 16
- 12: wdFormatXMLDocument
- 16: wdFormatDocumentDefault

dAh1EvJ.png
 
Upvote 0
Bạn kiếm đoạn code tô màu xanh như hình rồi sửa lại như bên dưới xem thử.

Mã:
WordDoc.SaveAs2 sFullPathFile, FileFormat:=12
Nếu số 12 không được thì đổi thành 16
- 12: wdFormatXMLDocument
Bạn kiếm đoạn code tô màu xanh như hình rồi sửa lại như bên dưới xem thử.

Mã:
WordDoc.SaveAs2 sFullPathFile, FileFormat:=12
Nếu số 12 không được thì đổi thành 16
- 12: wdFormatXMLDocument
- 16: wdFormatDocumentDefault

dAh1EvJ.png

- 16: wdFormatDocumentDefau

Mình đã làm được rồi, cảm ơn bạn nhiều
 
Upvote 0
có cách nào chuyển dữ liệu trong excel thành dang đứng được k cho dể nhập
 
Upvote 0
có cách nào chuyển dữ liệu trong excel thành dang đứng được k cho dể nhập
Bảng tính trong file này không phải là Form nhập liệu nhé bạn mà kết quả của việc tổng hợp dữ liệu, lấy ra kết quả cần trộn.
Bạn muốn nhập liệu kiểu gì đó theo yêu cầu thực tế của bạn thì bạn làm riêng nhé.
 
Upvote 0
@ongke0711 em bị vướng lỗi này, mong thầy chỉ giúp với ạ.
 

File đính kèm

  • Untitled.png
    Untitled.png
    125 KB · Đọc: 14
Upvote 0
Em dùng Ondrive, thì báo lỗi này ạ!
1703158415432.png
 
Upvote 0
Upvote 0
Lạ thật, trên máy tôi không thấy báo lỗi này. Cái gốc đường dẫn của bạn như thế nào vậy? (nhìn hình không thấy)
Các bạn khác nếu có thời gian thì kiểm tra thử giùm tôi vụ OneDrive nhé. Cảm ơn.

View attachment 297733 View attachment 297734
Bác cho em hỏi mục chèn bảng từ Excel sang Word, thì phần bảng có lưu ý gì không ạ:
- Em đã chuyển bảng về dạng Table-
- Tên name đã đặt theo kiểu tblBang1
Mà khi chuyển qua Word nó chỉ hiện tên bảng (tblBang1) ra thôi a!
Em cảm ơn!
 
Upvote 0
Bác cho em hỏi mục chèn bảng từ Excel sang Word, thì phần bảng có lưu ý gì không ạ:
- Em đã chuyển bảng về dạng Table-
- Tên name đã đặt theo kiểu tblBang1
Mà khi chuyển qua Word nó chỉ hiện tên bảng (tblBang1) ra thôi a!
Em cảm ơn!
E tự hỏi tự trả lời sau khi đọc hết các bình luận trong bài. May quá nhìn thấy đoạn code này của bác!
1704349211135.png
 
Upvote 0
Cơ mà font chữ của bảng em để bên File Excel là Times New Roman mà khi trộn qua Word (bên Word cũng đang để Times New Roman) lại thành Calibri 11. Em cũng đã sửa phần Normal của Excel sang Times New Roman mà trộn nó vẫn là Calibri 11.
 
Upvote 0
Web KT
Back
Top Bottom