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

Liên hệ QC

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

ongke0711

Thành viên gắn bó
Tham gia
7/9/06
Bài viết
2,327
Được thích
3,140
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.

>> Cập nhật ngày 14/07/2025: Lấy dữ liệu dạng cột (File đính kèm bên dưới)


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
 

File đính kèm

Lần chỉnh sửa cuối:
(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).
- Xuất file dạng .Docx, .PDF


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...

Y9SHro3.png


e7fmRBR.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
Cảm ơn bạn Chủ Topic rất nhiều nhé
 
Upvote 0
Nếu ma có tùy chọn bản dữ liệu trong excel qua thì hay nhi, như là có 1 trường dữ liệu là bản trong excel đã đc đặt tên or quét bản
Bài đã được tự động gộp:

dạ, xin lỗi chắc em diễn đạt chưa tốt ạ, ý em là ở bảng excel mình đang để dạng dd/mm/yyyy, muốn ra bản word nó hiện dạng ngày dd, tháng mm, năm yyyy.
nếu mailings thì em biết, nhưng theo mẫu bác ongke0711 thì em chưa làm được ạ.
Đơn giản không có ji khó hết, bạn chèn thêm cột và cho code vào để nó đọc cái ngày dd/mm/yy của bạn thành ngày tháng năm, rồi chèn dữ liệu này vào file bạn.
 
Lần chỉnh sửa cuối:
Upvote 0
Cái này có phần hay hơn ở chổ giao diện cho người dùng, nhưng bác lại bỏ mất một tính năng quan trọng trong file gốc là tạo ra thư mục lấy tên cột A để đặt tên, còn của bác lại lấy tên cột a lam trên file có đuôi kèm theo do đó xuất file lúc tìm hơi khó khăn xíu, bác bổ sung lại cách tạo folder khi chọn nh file là đẹp
 
Upvote 0
Cái này có phần hay hơn ở chổ giao diện cho người dùng, nhưng bác lại bỏ mất một tính năng quan trọng trong file gốc là tạo ra thư mục lấy tên cột A để đặt tên, còn của bác lại lấy tên cột a lam trên file có đuôi kèm theo do đó xuất file lúc tìm hơi khó khăn xíu, bác bổ sung lại cách tạo folder khi chọn nh file là đẹp
File gốc là file nào bạn? Tính năng quan trọng theo cách nghĩ của bạn thôi chứ không phải của chung nhé. Xem lại hướng dẫn sử dụng đi rồi phát biểu nhé.
 
Upvote 0
(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).
- Xuất file dạng .Docx, .PDF


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...

Y9SHro3.png


e7fmRBR.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
Mình muốn dữ liệu trong excel theo kiểu hàng dọc thì mình làm thế nào ạ
 
Upvote 0
Bác có thể thêm tính năng tạo folder con khi chọn ( lưu các file chạy vào folder đó) tên folde lấy từ cột nào đó ví dụ Cột A được không bác,
 
Upvote 0
file bị hỏng hay sao mà mình chạy thì được nhưng khi mở lên thì dữ liệu không được trộn ra nguyên cái file gốc, mình đã cài [] vào tiêu đề
 
Upvote 0
file bị hỏng hay sao mà mình chạy thì được nhưng khi mở lên thì dữ liệu không được trộn ra nguyên cái file gốc, mình đã cài [] vào tiêu đề
Bạn tải lại file ở bài #1.
- Dòng tiêu đề chỉ cần copy dán lên dòng 1, bấm nút lệnh thì code tự thêm dấu ngoặc vuông [...].
- Tôi không hiểu câu "... dữ liệu không được trộn ra nguyên cái file gốc"?
 
Upvote 0
Bạn tải lại file ở bài #1.
- Dòng tiêu đề chỉ cần copy dán lên dòng 1, bấm nút lệnh thì code tự thêm dấu ngoặc vuông [...].
- Tôi không hiểu câu "... dữ liệu không được trộn ra nguyên cái file gốc"?
lỗi là do mình không copy lên dòng số 1, nhưng mình vẫn không chạy được, bạn xem giúp đây là lỗi gì với. kèm theo ảnh.001.png02.png
 
Upvote 0
Mình lấy bản hôm qua tải về, thì đây là kết quả sau khi trộn., nó vẫn ra y nguyên cái file gốc chứ chưa được trộn.
03.png04.png
Bài đã được tự động gộp:

có thể là file name ở đâu đó bị lỗi, mình nghĩ là cái forms đang bị lỗi tên gì đó.
005.png
 
Lần chỉnh sửa cuối:
Upvote 0
Mình lấy bản hôm qua tải về, thì đây là kết quả sau khi trộn., nó vẫn ra y nguyên cái file gốc chứ chưa được trộn.
View attachment 295150View attachment 295151
Bài đã được tự động gộp:

có thể là file name ở đâu đó bị lỗi, mình nghĩ là cái forms đang bị lỗi tên gì đó.
View attachment 295152
Bác copy file về máy, đừng để trên dropbox nữa xem có được không
 
Upvote 0
Mình lấy bản hôm qua tải về, thì đây là kết quả sau khi trộn., nó vẫn ra y nguyên cái file gốc chứ chưa được trộn.

Bài đã được tự động gộp:

có thể là file name ở đâu đó bị lỗi, mình nghĩ là cái forms đang bị lỗi tên gì đó.

Bạn dùng file này xem còn lỗi 52 nữa không. Copy vô cùng thư mục.
Tôi chuyển sang Office 2013 32bit.
 

File đính kèm

Upvote 0
(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).
- Xuất file dạng .Docx, .PDF


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...

Y9SHro3.png


e7fmRBR.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
hay là code của bản này 32 bít ko dùng đc cho 64 nhỉ? máy mng dùng đc sao máy mình ko dùng đc, thế mới là cái vấn đề khó hiểu.
 
Upvote 0
hay là code của bản này 32 bít ko dùng đc cho 64 nhỉ? máy mng dùng đc sao máy mình ko dùng đc, thế mới là cái vấn đề khó hiểu.
Code dùng cho cả 32 và 64 bit.
Đơn giản là giờ bạn tạo file Excel mới từ máy bạn, copy toàn bộ code, Form, Sheet qua, gán lại macro rồi chạy thử là biết liền.
 
Upvote 0
hoặc có thể do office mình cài bị lỗi chăng? trước đó mình cũng cài thêm mấy add in rồi lại xoá. để mai mình xem lại xem sao vì mọi ng ko thấy ai kêu lỗi cả.
Không phải máy bạn bị lỗi đâu. Giờ rảnh tôi mới ngồi kiểm tra lại thì phát hiện lỗi ở phần code tự động lấy đường dẫn folder cũ -> nạp các file .doc trong đó.
Tôi đã sửa và cập nhật ở link bài #1. File đính kèm bên dưới.

Screenshot at Sep 27 01-16-33.png

(PS: Phải mượn cái laptop Windows của thằng con mới test ra cái lỗi đường dẫn, còn làm trên máy Windows ảo thì các đường dẫn dạng UNC nó vẫn chấp nhận, không báo lỗi)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Không phải máy bạn bị lỗi đâu. Giờ rảnh tôi mới ngồi kiểm tra lại thì phát hiện lỗi ở phần code tự động lấy đường dẫn folder cũ -> nạp các file .doc trong đó.
Tôi đã sửa và cập nhật ở link bài #1. File đính kèm bên dưới.

View attachment 295188

(PS: Phải mượn cái laptop Windows của thằng con mới test ra cái lỗi đường dẫn, còn làm trên máy Windows ảo thì các đường dẫn dạng UNC nó vẫn chấp nhận, không báo lỗi)
quá tuyệt vời mình vừa chạy thì thấy ngon lành không bị lỗi nữa rồi bác! Đây là bản thấy tốc độ rất nhanh và nhiều option để lựa chọn!
 
Upvote 0
Không phải máy bạn bị lỗi đâu. Giờ rảnh tôi mới ngồi kiểm tra lại thì phát hiện lỗi ở phần code tự động lấy đường dẫn folder cũ -> nạp các file .doc trong đó.
Tôi đã sửa và cập nhật ở link bài #1. File đính kèm bên dưới.

View attachment 295188

(PS: Phải mượn cái laptop Windows của thằng con mới test ra cái lỗi đường dẫn, còn làm trên máy Windows ảo thì các đường dẫn dạng UNC nó vẫn chấp nhận, không báo lỗi)
Chào Bác @ongke0711 ,
khi chạy phát sinh cái lỗi:

1695778188915.png


Không biết mình có làm lộn cái gì không nữa, chưa có test debug nên ko biết dòng nào...

Cám ơn Bác nhiều.
 
Upvote 0
Upvote 0
Upvote 0
cho mình hỏi, khi mình chạy thì ví dụ cột A là [STT] không có dữ liệu, nhưng khi chạy thì file word vẫn hiện [STT] chứ không mặc định thay thế bằng rỗng, giờ muốn nó thay thế bằng rỗng nếu không có dữ liệu thì làm ntn bác?
 
Upvote 0
cho mình hỏi, khi mình chạy thì ví dụ cột A là [STT] không có dữ liệu, nhưng khi chạy thì file word vẫn hiện [STT] chứ không mặc định thay thế bằng rỗng, giờ muốn nó thay thế bằng rỗng nếu không có dữ liệu thì làm ntn bác?
À còn nhiều mục tôi chưa bẫy lỗi kỹ. Bạn dùng file đính kèm bên dưới đã cập nhật.
Tôi đang tinh chỉnh xem có tăng tốc được chút nào không chứ dùng vòng lặp trong Word chạy chậm thật.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
À còn nhiều mục tôi chưa bẫy lỗi kỹ. Bạn dùng file đính kèm bên dưới đã cập nhật.
Tôi đang tinh chỉnh xem có tăng tốc được chút nào không chứ dùng vòng lặp trong Word chạy chậm thật.
Mã:
Sub TaoDongTieuDe1()
    Dim arrTieuDe As Variant
    Dim rngTieuDe As Range
    Dim sTit As String, s As String, i As Long
    
    sTit = "T" & ChrW(7841) & "o d" & ChrW(242) & "ng ti" & ChrW(234) & "u " & ChrW(273) & ChrW(7873)
    s = vbNewLine & "Qu" & ChrW(233) & "t ch" & ChrW(7885) & "n d" & ChrW(242) & "ng Ti" & ChrW(234) & "u " & ChrW(273) & ChrW(7873) & " " & ChrW(273) & ChrW(7875) & " th" & ChrW(234) & "m d" & ChrW(7845) & "u ngo" & ChrW(7863) & "c vu" & ChrW(244) & "ng [...]." & vbNewLine & vbNewLine
    
    On Error Resume Next
    Set rngTieuDe = Application.InputBox(Prompt:=s, Title:=sTit, Type:=8)
    On Error GoTo 0
    
    If rngTieuDe Is Nothing Then Exit Sub
    
    ReDim arrTieuDe(1 To rngTieuDe.Columns.Count)
        
    For i = 1 To rngTieuDe.Columns.Count
        arrTieuDe(i) = "[" & rngTieuDe.Cells(1, i).Value & "]"
    Next
        
    rngTieuDe.Value = arrTieuDe
End Sub
Mình có sửa cái đoạn tạo dòng tiêu đề, để khi hiện hộp thoại thì nhấn esc không bị lỗi vì không chọn dải ô cần tạo.
Thấy file của bạn rất ổn rồi. Tốc độ thì mình thấy khá ok rồi.
 
Upvote 0
Dạ, e chào các A.C, hiện tại em đang gặp một lỗi như trong ảnh:
- Khi làm file thì nhiều lúc cũng cần lọc những dòng mình cần xuất file, nhưng khi lọc thì file xuất ra không đủ.
1696996740734-png.295589

- Mong A.C có thể sửa lỗi này giúp e, e cảm ơn
 

File đính kèm

  • 1696996740734.png
    1696996740734.png
    161.1 KB · Đọc: 158
Upvote 0
- Khi làm file thì nhiều lúc cũng cần lọc những dòng mình cần xuất file, nhưng khi lọc thì file xuất ra không đủ.
Đây là lỗi do tôi chưa sửa 1 dòng code sai trong việc đếm dòng.
Bạn tải lại file đính kèm và test xem còn sai cái gì nữa không nhé.
 

File đính kèm

Upvote 0
Rất cảm ơn bác ongke0711
Em có chỉnh lại file của bac 1 chút để phù hợp nhu cầu sử dụng. Nhưng bị báo lỗi run time error 91, bác em giúp e với ạ.
 

File đính kèm

Upvote 0
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].
 

File đính kèm

  • Merge Data Excel.xlsb
    Merge Data Excel.xlsb
    80.7 KB · Đọc: 36
  • 1.png
    1.png
    82.5 KB · Đọc: 42
  • 2.png
    2.png
    118.9 KB · Đọc: 41
  • 3.png
    3.png
    19.2 KB · Đọc: 41
  • 4.png
    4.png
    24.6 KB · Đọc: 41
  • 5.png
    5.png
    13 KB · Đọc: 43
Upvote 0
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 đó
Nếu không lầm là bạn đang sử dụng cái phiên bản đời đầu của tôi thì phải, đã qua bao cuộc bể dâu chỉnh sửa, cập nhật code rồi đó bạn... :). Nhưng đúng là. các tính năng trên của bạn là file tôi không có.
 
Upvote 0
Bác ongke0711 cho e hỏi chức năng (Trộn bảng biểu Excel vào Word Table, giữ nguyên định dạng thiết kế trong Excel) sử dụng thế nào với ạ
 
Upvote 0
Bác ongke0711 cho e hỏi chức năng (Trộn bảng biểu Excel vào Word Table, giữ nguyên định dạng thiết kế trong Excel) sử dụng thế nào với ạ
Ý đó là bạn định dạng sẵn bảng biểu trong file Excel theo đúng yêu cầu rồi, thì khi trộn sang Word, table trong Word vẫn giữ nguyên cái định dạng đó, khỏi mất công định dạng lại.
Còn code thì trong file có sẵn luôn rồi đó bạn.

Screen Shot 2023-11-06 at 23.12.52.png
 
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)
 

File đính kèm

  • 1.png
    1.png
    53.4 KB · Đọc: 17
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)
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: 20
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
@ongke0711 Nếu trộn dữ liệu bình thường, em có thể viết mã trộn cho dự án này
với 500 dòng dữ liệu cho mỗi văn bản chỉ trong vòng 15 đến vài mươi giây
có thời gian em sẽ tham gia dự án.
 
Upvote 0
Từ file của bác @ongke0711 em có Save as sang file add-in. Bác nào cần có thể sử dụng ạ!
1704521255843.png

 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bác @ongke0711 ơi, sẽ găp lỗi 1004 nếu định dạng tại cột Danh sách 'bảng biểu' là Custom mà không phải là General ạ!
1704606613428.png
--------------------------- Microsoft Excel ---------------------------
Error: 1004 Err content: Application-defined or object-defined error
--------------------------- OK ---------------------------
 
Upvote 0
Phần tạo thư mục con cho từng dòng dữ liệu khi em test thì nó mỗi file lại tạo 1 folder, chứ không gom lại ạ!
1704608103098.png
 
Upvote 0
Upvote 0
Tôi có ghi là tạo folder từng dòng mà. Còn muốn tạo kiểu khác nữa thì phải thiết kế thêm các tùy chọn thôi, tôi không làm tất cả mà chỉ làm phần chính thôi bạn.
Vâng là từng dòng đó ạ. Ví dụ dòng STT 1 thì các file tạo ra cho dòng đó cùng gom vào 1 thư mục. Nhưng của em nó lại thành 1, 1_1, 1_2 ấy ạ
Bài đã được tự động gộp:

Phút 26:27 trong Video này ạ:
Liên kết: https://youtu.be/PV0QaBIjOkk?si=u4CXR4vG_dwPOj-J

Vâng là từng dòng đó ạ. Ví dụ dòng STT 1 thì các file tạo ra cho dòng đó cùng gom vào 1 thư mục. Nhưng của em nó lại thành 1, 1_1, 1_2 ấy ạ
 
Upvote 0
Bác @ongke0711 ơi, sẽ găp lỗi 1004 nếu định dạng tại cột Danh sách 'bảng biểu' là Custom mà không phải là General ạ!
View attachment 298160
--------------------------- Microsoft Excel ---------------------------
Error: 1004 Err content: Application-defined or object-defined error
--------------------------- OK ---------------------------
Về cơ bản thì khi thiết kế, người dùng phải thiết lập kiểu dữ liệu chính xác cho từng cột dữ liệu chứ không dễ dãi, muốn để sao cũng được, rồi sau này đi dọn rác cho họ.
Nếu đã lỡ gặp trường hợp "Custom" thì bạn sửa đoạn code này xem như thế nào.
Screenshot at Jan 07 18-12-58.png
 
Upvote 0
Vâng là từng dòng đó ạ. Ví dụ dòng STT 1 thì các file tạo ra cho dòng đó cùng gom vào 1 thư mục. Nhưng của em nó lại thành 1, 1_1, 1_2 ấy ạ
Bài đã được tự động gộp:

Phút 26:27 trong Video này ạ:
Liên kết: https://youtu.be/PV0QaBIjOkk?si=u4CXR4vG_dwPOj-J

Do lúc trước có bạn có nhu cầu là tạo Folder riêng cho từng file một nên tôi mới tạo cái hàm MakeRecursiveFolder().
Nếu nhu cầu chung thực tế chỉ cần tạo 1 folder rồi gộp các file cùng đối tượng vào thì đơn giản hơn.

- Bạn copy cái hàm này vào module modFunctions:

Mã:
Sub makeFolder(Path As String, filePath As String)
    Static sPath As String
    sPath = Path
   
    If dirExists(Path) = False Then
        creaFolder Path
    End If
    sFPath = sPath & "\" & filePath
End Sub

- Trong thủ tục "SearchAndReplaceText": thêm gọi cái hàm vừa tạo như hình. (Làm tương tự cho trường hợp "Word")

Screenshot at Jan 07 18-53-44.png
 
Upvote 0
Do lúc trước có bạn có nhu cầu là tạo Folder riêng cho từng file một nên tôi mới tạo cái hàm MakeRecursiveFolder().
Nếu nhu cầu chung thực tế chỉ cần tạo 1 folder rồi gộp các file cùng đối tượng vào thì đơn giản hơn.

- Bạn copy cái hàm này vào module modFunctions:

Mã:
Sub makeFolder(Path As String, filePath As String)
    Static sPath As String
    sPath = Path
  
    If dirExists(Path) = False Then
        creaFolder Path
    End If
    sFPath = sPath & "\" & filePath
End Sub

- Trong thủ tục "SearchAndReplaceText": thêm gọi cái hàm vừa tạo như hình. (Làm tương tự cho trường hợp "Word")

View attachment 298171
Dạ cảm ơn bác nhiều ạ
 
Upvote 0
1704794061717.png
Mình có chạy nhưng hình như header và footer sẽ không thể merge được đúng không bạn
 
Upvote 0
Upvote 0
Các bạn có ai bị giống mình k nhỉ, mình sử dụng file này dùng trên OneDrive thì bị crash.
Còn dùng trên local thì k bị
Bài đã được tự động gộp:

Các bạn có ai bị giống mình k nhỉ, mình sử dụng file này dùng trên OneDrive thì bị crash.
Còn dùng trên local thì k bị
 
Upvote 0
Các bạn có ai bị giống mình k nhỉ, mình sử dụng file này dùng trên OneDrive thì bị crash.
Còn dùng trên local thì k bị
Bài đã được tự động gộp:

Các bạn có ai bị giống mình k nhỉ, mình sử dụng file này dùng trên OneDrive thì bị crash.
Còn dùng trên local thì k bị
có thể là do đường dẫn dài quá bạn ạ! Của mình dùng cũng toàn copy ra ổ D chạy cho mượt!
 
Upvote 0
Các bạn có ai bị giống mình k nhỉ, mình sử dụng file này dùng trên OneDrive thì bị crash.
Còn dùng trên local thì k bị
có thể là do đường dẫn dài quá bạn ạ! Của mình dùng cũng toàn copy ra ổ D chạy cho mượt!
quả thật là đường dẫn dài thật (nhưng đường dẫn mình đều đặt k dấu và không có space, để mình thử đổi lại đường dẫn ngắn hơn xem sao). cảm ơn ý kiến b
 
Upvote 0
1706197568294.png
Mình thấy có cách nào làm được như Misa thì dễ dùng hơn rất nhiều . Cả 2 phiên bản @ongke0711 và @Maika8008 đều là để table trên excel rồi copy qua word . Còn của misa là có sẵn table trên word rồi đưa tiêu đề cột vào nó tự co dãn theo key chính ở bảng dữ liệu nguồn
 
Upvote 0
View attachment 298766
Mình thấy có cách nào làm được như Misa thì dễ dùng hơn rất nhiều . Cả 2 phiên bản @ongke0711 và @Maika8008 đều là để table trên excel rồi copy qua word . Còn của misa là có sẵn table trên word rồi đưa tiêu đề cột vào nó tự co dãn theo key chính ở bảng dữ liệu nguồn
:D Làm như Misa thì code dễ hơn nhiều đó bạn. Cách tôi và bác Maika8008 nó tùy biến Table các kiểu, không phụ thuộc table thiết kế sẳn trong Word. Bạn ngâm cứu kỹ lại đi nhé.
 
Upvote 0
:D Làm như Misa thì code dễ hơn nhiều đó bạn. Cách tôi và bác Maika8008 nó tùy biến Table các kiểu, không phụ thuộc table thiết kế sẳn trong Word. Bạn ngâm cứu kỹ lại đi nhé.
Chắc do khả năng của mình là khó . Nếu được bạn giải thích giúp mình chỗ này
Ví dụ có sẵn 1 cái bảng trong word để tìm kiếm theo tiêu đề cột không khó gì , nhưng nếu tìm đc thì làm sao biết được nó nằm ở table nào trong word để còn insert dòng? Rồi trong 1 file word có nhiều table cần chèn thì sao được?
Bài đã được tự động gộp:

Trước đây mình từng hỏi cái này , nhớ có 1 bác trên này chỉ cho cách dùng tab nhưng có nhiều bảng dùng tab cũng không ổn lắm
 
Upvote 0
Upvote 0
Bạn cứ đưa vài mẫu word số lượng khác nhau phù hợp với số liệu trong file excel lên mình xem thế nào nhé.
Mình gửi lên mẫu này phức tạp hơn , file word có 2 table chính có cấu trúc khác nhau , ngoài ra còn bị lẫn lộn thêm các table khác nữa
Bài đã được tự động gộp:

Bạn cứ đưa vài mẫu word số lượng khác nhau phù hợp với số liệu trong file excel lên mình xem thế nào nhé.
Mình gửi lên mẫu này phức tạp hơn , file word có 2 table chính có cấu trúc khác nhau , ngoài ra còn bị lẫn lộn thêm các table khác nữa
Nếu số lượng dòng trong hóa đơn không vượt quá một con số nào đó (cố định) thì dùng luôn chức năng Mail merger, khỏi phải code. :D
Cái mail merge xử lý được table nay mình mới biết , mong được mở mang kiến thức . Một tờ hóa đơn mình làm hiếm khi vượt quá 30 dòng
 

File đính kèm

Upvote 0
Mình gửi lên mẫu này phức tạp hơn , file word có 2 table chính có cấu trúc khác nhau , ngoài ra còn bị lẫn lộn thêm các table khác nữa
Bài đã được tự động gộp:


Mình gửi lên mẫu này phức tạp hơn , file word có 2 table chính có cấu trúc khác nhau , ngoài ra còn bị lẫn lộn thêm các table khác nữa

Cái mail merge xử lý được table nay mình mới biết , mong được mở mang kiến thức . Một tờ hóa đơn mình làm hiếm khi vượt quá 30 dòng
Có vài vấn đề như sau bạn ạ:
1/ Mình bảo bạn gửi file word phù hợp với nội dung dữ liệu trong file excel thì chưa thấy (file excel cũ không đủ nội dung với file word này).
2/ Bạn cho mình xem file excel nguyên bản được không. (file excel bạn gửi đây là file của anh OngKe0711)
3/ Bạn có tất cả mấy mẫu file Word
4/ File word nào phải đi kèm với dữ liệu đồng bộ với file excel đó nhé.
Bạn thử đọc bài này thì sẽ thấy có trường hợp còn phức tạp hơn của bạn.
 
Lần chỉnh sửa cuối:
Upvote 0
Mình đã đưa data đồng bộ với file mẫu lên rồi còn lấy các mẫu làm gì không biết. Chắc bạn không hiểu ý mình
Mình ko cần bạn code toàn bộ làm gì cho mình, giúp mình 1 sub để đưa table vào là được rồi. Cụ thể như sau
Quét qua data, lấy cột số nghiệm thu làm key chính,( mỗi key chính có số dòng chi tiết có thể khác nhau ), mỗi key chính xuất ra 1 file word. trong file word có các table đã định vị sẵn các cột rồi chỉ đưa dữ liệu tương ứng với key là xong
Ví dụ như dữ liệu kiểu này dùng file của chủ topic mình phải tạo 100 rất nhiều table rồi đặt nhiều tên , hoặc tạo sub phụ để thay đổi dữ liệu bảng tương ứng nhưng như vậy khi cần áp dụng mẫu văn bản khác lại mất công viết lại sub phụ. Với dữ liệu kiểu này để sẵn table trong word rồi định vị cột cho nó vẫn là dễ dùng hơn, có đoạn code này mình tự cải biên lại file của chủ Topic để phù hợp hơn với công việc của mình
 
Upvote 0
Mình đã đưa data đồng bộ với file mẫu lên rồi còn lấy các mẫu làm gì không biết. ...
Em có một góp ý nhỏ: Chắc do đêm muộn, do áp lực, do nhiều lý do khác... khiến bác bực bội. Nhưng với tâm thế của một người đi nhờ, em nghĩ bác nên kiềm chế cảm xúc lại!
 
Upvote 0
Em có một góp ý nhỏ: Chắc do đêm muộn, do áp lực, do nhiều lý do khác... khiến bác bực bội. Nhưng với tâm thế của một người đi nhờ, em nghĩ bác nên kiềm chế cảm xúc lại!
Xin lỗi bạn chút nhé ! Có 2 cái dữ liệu và file mẫu mình đã cung cấp cả, bạn hỏi mẫu khác mình cũng đưa luôn. và bạn nói excel file word không phù hợp nội dung với nhau trong khi mình mất công index từng vị trí.
Và mình cũng khẳng định luôn để sẵn cái table trong word định vị sẵn vị trí sẽ khó hơn tạo cái bảng trong excel rồi copy qua nhiều vì nó còn phải xác định vị trí cái bảng đó rồi mới insert dòng đưa dữ liệu tương ứng vào từng cột.
Một đằng là paste qua một đằng có sẵn bảng rồi đưa dữ liệu vào nó rất khác nhau
Có lẽ bạn hiểu sai, mình không đi nhờ làm thay cho mình , mình muốn học hỏi kiến thức, để làm bảng trong excel rồi paste qua mình cũng tự làm được nhưng trên phương diện người dùng cuối là ko tối ưu
1706320856946.png
 
Upvote 0
Mình đã đưa data đồng bộ với file mẫu lên rồi còn lấy các mẫu làm gì không biết. ...
Em có một góp ý nhỏ: Chắc do đêm muộn, do áp lực, do nhiều lý do khác... khiến bác bực bội. Nhưng với tâm thế của một người đi nhờ, em nghĩ bác nên kiềm chế cảm xúc lại!
Xin lỗi bạn chút nhé ! Có 2 cái dữ liệu và file mẫu mình đã cung cấp cả, bạn hỏi mẫu khác mình cũng đưa luôn. và bạn nói excel file word không phù hợp nội dung với nhau trong khi mình mất công index từng vị trí.
Và mình cũng khẳng định luôn để sẵn cái table trong word định vị sẵn vị trí sẽ khó hơn tạo cái bảng trong excel rồi copy qua nhiều vì nó còn phải xác định vị trí cái bảng đó rồi mới insert dòng đưa dữ liệu tương ứng vào từng cột.
Một đằng là paste qua một đằng có sẵn bảng rồi đưa dữ liệu vào nó rất khác nhau
Có lẽ bạn hiểu sai, mình không đi nhờ làm thay cho mình , mình muốn học hỏi kiến thức, để làm bảng trong excel rồi paste qua mình cũng tự làm được nhưng trên phương diện người dùng cuối là ko tối ưu
View attachment 298795
Dạ bác, em xin lỗi ạ!
 
Upvote 0

Tuyệt quá, mình bí ngay khúc đầu là xác định cái bảng chứa nội dung cần insert là cái bảng nào . Bạn thử vẫn dữ liệu đó nhưng với cái file word #190 xem kết quả thế nào
Sao mà khi thực hiện nó cứ chớp chớp như bị điện giật vậy gọi là tuyệt sao bác.

Tôi đang thử viết phiên bản "1 chớp" với vài giây là gộp hàng trăm tệp. Tôi sẽ sớm chia sẻ bác nhé
 
Upvote 0
mình bí ngay khúc đầu là xác định cái bảng chứa nội dung cần insert là cái bảng nào.
Muốn xác định bảng nào trong Word thì tôi biết có 2 cách: dùng Bookmark (như bạn đang thiết lập) hoặc Title.

Screen Shot 2024-01-27 at 19.58.40.png

Mã:
Function getTable_title(sTitle As String) As Table
    Dim tbl As Table
    For Each tbl In ActiveDocument.Tables
        If tbl.Title = sTitle Then
            Set getTable_title = tbl
            Exit Function
        End If
    Next
End Function

Function getTable_bookmark(sTableName As String) As Table
    On Error Resume Next
    Set getTable_bookmark = ThisDocument.Bookmarks(sTableName).Range.Tables(1)
End Function
 
Upvote 0

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

Back
Top Bottom