[Chia sẻ] Dùng VBA trộn dữ liệu Excel sang file Word mẫu (tương tự chức năng Mail Merge) (2 người xem)

Liên hệ QC

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

Maika8008

Thành viên gạo cội
Tham gia
12/6/20
Bài viết
4,764
Được thích
5,740
Donate (Momo)
Donate
Giới tính
Nam
Những ai có nhu cầu và đã từng sử dụng chức năng Mail Merge của MS Word dùng dữ liệu trên bảng tính Excel đều biết nó hoạt động như thế nào. Không ít trong số đó từng gặp những rắc rối về định dạng số, ngày tháng khi trộn, hoặc khi chuyển file hoạt động tốt từ máy này sang máy khác lại sinh ra khó bảo.

Với việc dùng VBA để trộn thì:
ƯU ĐIỂM:
- Dễ làm ngay cả với người mới. Thú thật khi mới dùng Mail Merge trong mấy lần đầu tiên tôi rất lúng túng, không biết phải làm thế nào để nạp dữ liệu, chèn trường
- Không có các lỗi: định dạng number không như ý muốn, bên Excel 1 đường nhưng sang Word lại 1 nẻo dù đã chỉnh sửa định dạng của Merge Fields , đảo ngày sang tháng.
- Không phát sinh lỗi khi chuyển sang máy tính khác (trừ việc cần thêm thư viện Microsoft Word tại cửa sổ VBA)
NHƯỢC ĐIỂM:
- Chậm. Tốc độ anh này nếu so với Mail Merge cũng như so đi xe đạp với xe máy --=0

Ứng dụng sở trường của nó không phải ở việc trộn và in hàng loạt như giấy mời, mà là ở việc trộn mỗi lần cho nhiều file mẫu khác nhau nhưng trong các file ấy dùng lặp đi lặp lại 1 số thông tin thay đổi. Ví dụ khi bạn có một bộ văn bản cho 1 công việc gồm: Hợp đồng, phụ lục, thông báo, giấy mời, quy chế, nghiệm thu, thanh lý... mỗi lần dùng cho 1 đối tác, thì bạn rất dễ nhập sai thông tin đối tác, trích yếu công việc, ngày giờ tiến hành, địa điểm... hoặc khi sửa lại từ đối tác này dùng cho đối tác khác rất dễ bị râu ông nọ cắm cằm bà kia.

CÁCH DÙNG:
- Chuẩn bị file Word mẫu (ở trạng thái đóng). Tôi đã chuẩn bị sẵn 1 file mẫu ví dụ kèm theo.
- Chuẩn bị bảng dữ liệu như file Excel đính kèm. Nhập đường dẫn thư mục file Word mẫu tại ô H2 (đường dẫn này chỉ dùng khi bạn muốn trộn toàn bộ file Word trong thư mục nhưng lại không muốn hiện hộp thoại để lựa thư mục - Nếu ô H2 trống thì hộp thoại lựa thư mục sẽ xuất hiện khi chạy code)
- Bấm nút Gửi Field sang file Word mẫu. Từ các trường nhận được ở cuối file Word mẫu (tên trường bắt đầu bằng dấu $), bạn chép chúng đến các vị trí mong muốn và định dạng theo ý thích. Chép xong xóa các trường cuối file đi, lưu, đóng lại.
- Bấm Trộn để tiến hành. Các file đã trộn được đặt tên theo tên đối tác, lưu cùng đường dẫn với file Word mẫu.

CẬP NHẬT 29/07/2021: Sửa code để tăng tốc độ khi trộn hàng loạt toàn bộ dòng
CẬP NHẬT 07/12/2021: Giữ số 0 đầu số chứng minh nhân dân hoặc số điện thoại
CẬP NHẬT 17/05/2022: Trộn thông tin 1 người vào nhiều mẫu .docx khác nhau bằng hộp thoại chọn file. Văn bản đã trộn được lưu ở thư mục con có tên của người trộn. Nếu thư mục chưa tồn tại thì tự động được tạo mới. Tải file đính kèm tại bài #97
CẬP NHẬT 12/06/2022:
Làm gọn code và dùng userform để chọn tham số đáp ứng tất cả yêu cầu của các thành viên từ trước đến nay trong chủ đề.
CẬP NHẬT 14/06/2022: Ô chứa text >255 ký tự vẫn trộn đầy đủ thông tin và không thi hành với các dòng ẩn.
CẬP NHẬT 18/06/2022: Tăng tốc với trường hợp trộn nhiều dòng nhiều văn bản và sửa lỗi lấy sai vùng làm việc với trường hợp trộn tất cả file Word trong folder.
CẬP NHẬT 03/03/2023: Thêm chức năng chuyển sang trộn theo kiểu Mail Merge truyền thống với file Word mẫu có sẵn các trường theo cách bên trên.
CẬP NHẬT 29/06/2023: Tách riêng mỗi thủ tục cho 1 tùy chọn để dễ bảo trì code. Sửa lỗi không mở được đường dẫn mặc định.
CẬP NHẬT 07/08/2023: Thêm thao tác chèn bảng Excel vào Word. Thêm các cột $Table1$, $Table2$ ... vào bảng dữ liệu trộn và bố trí bảng cần chèn kèm trên trên đầu bảng như file đính kèm.
CẬP NHẬT 08/08/2023: Tạo bảng Word rồi chép dữ liệu của bảng Excel vào bảng Word. Bảng Word giữ được màu font chữ của trường giữ chỗ.
CẬP NHẬT 13/08/2023: Hoàn thiện code, thêm chức năng ghép file, và gộp các công việc chung 1 file
CẬP NHẬT 15/08/2023: Định dạng phân cách hàng nghìn cho bảng Word dựa vào định dạng các cột của bảng Excel.
CẬP NHẬT 30/09/2023: Mở luôn file Word kết quả khi trộn 1 dòng 1 file. Có thể chép 1 bảng vào nhiều vị trí khác nhau của file kết quả (như yêu cầu tại bài #432).
CẬP NHẬT 15/10/2024:
- Sửa vài lỗi trong bản 30/09/2024
- Thêm phiên bản trộn các trường bố trí theo hàng dọc (cột), theo yêu cầu tại bài #494
CẬP NHẬT 17/10/2024:
- Sửa vài điểm trong bản trộn theo dòng 15/10/2024
- Sửa câu từ và 1 vài lỗi của phiên bản trộn các trường bố trí theo hàng dọc (cột)
CẬP NHẬT 19/10/2024:
- Làm gọn và nhất quán code trong cả 2 phiên bản trộn dọc và ngang.
- Sửa lỗi phiên bản dọc
 

File đính kèm

Lần chỉnh sửa cuối:
Dạ em cảm ơn anh maika 8080 nhiều anh ạ. em phải chạy thận anh à. sáng nay mới về cảm ơn anh về code qúa hay.
em cũng xin nhờ anh bổ sung thêm code xuất đồng loạt các file và tạo ra các foder đồng loạt (bỏ qua chức năng chọn 1 dòng rồi mới tạo đồng loạt anh à). em gửi dữ liệu theo file của anh đã đăng. em xin cảm ơn anh nhiều ạ
Bài đã được tự động gộp:

em quên mất .anh maika ơi chức năng vẫn chọn nhiều file như anh mới làm hôm qua anh nhé. giờ thêm tạo nhiều dòng và foder là được anh à
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Dạ em cảm ơn anh maika 8080 nhiều anh ạ. em phải chạy thận anh à. sáng nay mới về cảm ơn anh về code qúa hay.
em cũng xin nhờ anh bổ sung thêm code xuất đồng loạt các file và tạo ra các foder đồng loạt (bỏ qua chức năng chọn 1 dòng rồi mới tạo đồng loạt anh à). em gửi dữ liệu theo file của anh đã đăng. em xin cảm ơn anh nhiều ạ
Bài đã được tự động gộp:

em quên mất .anh maika ơi chức năng vẫn chọn nhiều file như anh mới làm hôm qua anh nhé. giờ thêm tạo nhiều dòng và foder là được anh à
File của bạn!
Test luôn các cách trộn khác dùm tôi
 

File đính kèm

Upvote 0
Anh maika ơi có phần trộn tất cả cho nhiều văn bản em chạy nó bị đơ rồi dừng lại anh à. nhờ anh kiểm tra code em với
 
Upvote 0
Anh maika ơi có phần trộn tất cả cho nhiều văn bản em chạy nó bị đơ rồi dừng lại anh à. nhờ anh kiểm tra code em với
Bạn chạy dữ liệu ví dụ trong file hay dữ liệu thực? Nếu dữ liệu thực thì mấy file docx và bao nhiêu dòng trộn?

Tôi chạy 3 dòng x 3 file docx thì mất khoảng 30 giây.
 
Lần chỉnh sửa cuối:
Upvote 0
Giải pháp
em đang chạy trong file anh choanh ạ. nó bị treo máy anh à, anh gửi lại file anh chạy cho em xin với
 
Upvote 0
Quá Tuyệt vời anh MaiKa à. Vui quá anh à E chạy được rùi anh à . Em Cảm ơn anh rất nhiều ạ.
 
Upvote 0
anh Mai Ka ơi. Nhờ Anh viết thêm chức năng trộn một người nhiều văn bản , trộn nhiều nhiều văn bản Không đặt tên theo thư mục
 
Upvote 0
Anh Maika ơi. chắc mấy hôm nay anh bận à anh . Còn phần trộn nhiều văn bản không đặt tên theo trong Foder nhờ anh viết thêm cho em với
em xin cảm ơn anh
 

File đính kèm

Upvote 0
Dạo ny e không thấy anh maika 8008 . Anh rảnh sửa em đoạn code bài #110 với anh . em cảm ơ anh ạ
 
Upvote 0
Dạ em thử rồi mà không được anh à. E đi viện suốt nên không có thời gian nhiều a ạ mong a tranh thủ giup em. Mong a thương thì thương cho chót.
 
Upvote 0
anh Mai Ka ơi. Nhờ Anh viết thêm chức năng trộn một người nhiều văn bản , trộn nhiều nhiều văn bản Không đặt tên theo thư mục
Dạ em thử rồi mà không được anh à. E đi viện suốt nên không có thời gian nhiều a ạ mong a tranh thủ giup em. Mong a thương thì thương cho chót.
Không lưu trong thư mục riêng mà lưu tại thư mục có file docx cần trộn. Cần sửa để lưu chõ khác thì có ghi chú trong code, theo đó mà tùy biến.
 

File đính kèm

Upvote 0
Thấy anh hồi âm mà Đang nằm viện mà muốn chạy về để test bài của a lắm rồi. Em cảm ơn anh maika nhiều
 
Upvote 0
Không lưu trong thư mục riêng mà lưu tại thư mục có file docx cần trộn. Cần sửa để lưu chõ khác thì có ghi chú trong code, theo đó mà tùy biến.
Cho mình hỏi là khi trộn mình bị lỗi về phần trình độ học vấn ví dụ là 12/12 thì khi trộn xong sẽ ra là 12/12/2022. Mong bạn fix giúp.
 
Upvote 0
Upvote 0
Bạn gõ thế nào để ra 12/12 và trên thanh công thức thấy nó hiện thế nào?
mình định dạng lại cho ô đó là Text rồi gõ bình thường là "12/12" thôi bạn. Trên thanh công thức hiện là 12/12. Mình dùng bản ở file đính kèm ở cmt #97, mấy bản về sau thử thì cũng bị, bản ở #1 không bị nhưng lại bị lỗi mất số 0 đầu của sđt.

Ps: mình có thử định dùng thêm dấu ' để ô công thức hiện ra " '12/12 " nhưng vẫn ra kết quả là 12/12/2022 khi trộn sang file word.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
mình định dạng lại cho ô đó là Text rồi gõ bình thường là "12/12" thôi bạn. Trên thanh công thức hiện là 12/12. Mình dùng bản ở file đính kèm ở cmt #97, mấy bản về sau thử thì cũng bị, bản ở #1 không bị nhưng lại bị lỗi mất số 0 đầu của sđt.

Ps: mình có thử định dùng thêm dấu ' để ô công thức hiện ra " '12/12 " nhưng vẫn ra kết quả là 12/12/2022 khi trộn sang file word.
Bạn thử lại file ở bài #1 xem. Tôi vừa cập nhật.
 
Upvote 0
Em chào anh maika. hôm nay mới tét bài của anh được. Mọi thứ quá hoàn hảo anh à. em chỉ có 2 vấn đề mong anh bổ sung với
1. Khi chọn file mẫu thay vì phải tìm đến Foder chứa file mẫu ta có cách nào để chỉ định đến Foder chứa file mẫu đó luôn không anh
2. ở bài # 66 đã có chức năng tạo 1 foder mới chứa file kết quả, bây giờ tạo 2 Foder trở lên chứa kết quả thì như thế nào anh.
VD: \KetQua\Tron
em xin chân thành cảm ơn anh
 
Upvote 0
Em chào anh maika. hôm nay mới tét bài của anh được. Mọi thứ quá hoàn hảo anh à. em chỉ có 2 vấn đề mong anh bổ sung với
1. Khi chọn file mẫu thay vì phải tìm đến Foder chứa file mẫu ta có cách nào để chỉ định đến Foder chứa file mẫu đó luôn không anh
2. ở bài # 66 đã có chức năng tạo 1 foder mới chứa file kết quả, bây giờ tạo 2 Foder trở lên chứa kết quả thì như thế nào anh.
VD: \KetQua\Tron
em xin chân thành cảm ơn anh
1. Thay vì hiện hộp thoại chọn file thì bạn trỏ đến 1 ô nào đó chứa đường dẫn đến file, hoặc ghi thẳng trong code luôn, ví dụ như fPath = "D:\...."
2. Tôi thực tình không hiểu bạn muốn gì nữa. Trước thì bảo tách ra từng folder cho từng người, sau đó thì bảo để chung 1 folder, chừ thì yêu cầu 2 folder trở lên.
Mà 2 folder "trở lên" là thế nào, bỏ cái gì trong folder nào?
 
Upvote 0
1. Thay vì hiện hộp thoại chọn file thì bạn trỏ đến 1 ô nào đó chứa đường dẫn đến file, hoặc ghi thẳng trong code luôn, ví dụ như fPath = "D:\...."
2. Tôi thực tình không hiểu bạn muốn gì nữa. Trước thì bảo tách ra từng folder cho từng người, sau đó thì bảo để chung 1 folder, chừ thì yêu cầu 2 folder trở lên.
Mà 2 folder "trở lên" là thế nào, bỏ cái gì trong folder nào?
Theo mình nghĩ có lẽ là:
1. Là chức năng gán đường dẫn cho "sPathNew" bằng giá trị của 1 cell nào đó như cách của phần "InsertField"
2. Là phần mở rộng của "sPathNew" sẽ là "KetQua\Tron\" chứ không phải là "Tron\"
PS: Theo mình thì nếu bạn sửa như thế cho bạn đó thì bạn cập nhật luôn cho VBA phần tạo thư mục, mỗi loại trộn sẽ có thư mục riêng. Ví dụ như trộn 1 người 1 văn bản sẽ vào thư mục "Maika KQ\Tron 1-mot\", nhiều người 1 văn bản thì "Maika KQ\Tron nhieu-mot\"
Ý kiến cá nhân của mình là vậy.
 
Upvote 0
em xin lỗi vì có việc anh à.

 
Lần chỉnh sửa cuối:
Upvote 0
Tôi không hiểu .. ..
 
Upvote 0
Giống như cách giải thích của anh doredore 1988 giải thích a ạ. Trước đây a viết chức bằng lưu file vào 1 foder có tên là Tron. Giờ thêm 2 cấp foder trở lên vd KQ/Tron ( mục đích để quản lý dữ liệu cho khoa học anh à)
 
Upvote 0
Giống như cách giải thích của anh doredore 1988 giải thích a ạ. Trước đây a viết chức bằng lưu file vào 1 foder có tên là Tron. Giờ thêm 2 cấp foder trở lên vd KQ/Tron ( mục đích để quản lý dữ liệu cho khoa học anh à)
Bạn tìm lại file kèm trong trả lời cho những thành viên khác sẽ thấy.
 
Upvote 0
File này có chức năng tạo Foder là Tron. Giờ thêm KetQua\Tron\ thì sửa sao anh
 
Upvote 0
Anh sửa lại file chưa anh nếu sửa uppload lên cho em xin với
 
Lần chỉnh sửa cuối:
Upvote 0
Mong Anh cố gắng sửa guip em với anh . có gì không phải anh bỏ qua cho em út với.
 
Upvote 0
Anh maika oi anh làm ơn làm phúc sửa e 1 tý đó nữa thui. Em xin cảm ơn anh nhiều
 
Upvote 0
Cho mình hỏi là có cách nào để thực hiện với file "*.doc" không bạn? Tại mình cần lưu dưới dạng file ".doc" cho 1 số máy tính cũ của cơ quan nên muốn hỏi thử.
Bạn search google cú pháp option định dạng file lưu rồi đem thay vào lệnh saveas
 
Upvote 0
Upvote 0
xin hỏi tác giả anh MaiKa có cách nào ở phần arrPath em muốn chỉ dẫn tới thư mục Foder chứa nhiều file mẫu, có bao nhiêu File mẫu thì trộn bấy nhiêu file. ( mục đích sau này em chỉ cần chép file mẫu vào thư mục tạo sẵn ) ( VD: "D:\TronThu\FileMauDeTronThu" thay vì phải chọn như dưới code. Thì sửa như thế nào . em xin cảm ơn
Nội dung code của anh

Sub MergeByVBA()
Dim WordApp As Object, wDoc As Object
Dim k&, rw&, Col&, arrF, Fullname, arrPath
Dim sPath$, sPathNew$, sFormat$
Dim Rng As Range
Dim fso As Object
On Error GoTo Thoat
Set Rng = Application.InputBox("Chon 1 cell bat ky cua dong can tron sang Word", Type:=8)
arrPath = Application.GetOpenFilename(Title:="Chon cac file doc can lam.", _
FileFilter:="Excel Files *.doc* (*.doc*),", MultiSelect:=True)
On Error GoTo Arr
If arrPath = False Then
MsgBox "Không có file nào.", vbExclamation, "Sorry!"
Exit Sub
Else
Arr:
sPath = Left(arrPath(1), InStrRev(arrPath(1), "\"))
rw = Rng.Row
Col = Range("XFD" & rw).End(xlToLeft).Column
arrF = Range("A4", Cells(4, Col)).Value
If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
'
sPathNew = sPath
Set WordApp = CreateObject("Word.Application")
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Fullname In arrPath
Set wDoc = WordApp.Documents.Open(Fullname)
WordApp.Visible = False
On Error GoTo Ve
For k = 1 To Col
With WordApp.Selection.Find
.Text = arrF(1, k)
sFormat = GetFormat(Cells(rw, k))
If sFormat <> "0" Then
.Replacement.Text = Format(Cells(rw, k), sFormat)
Else
.Replacement.Text = Cells(rw, k)
End If
End With
WordApp.Selection.Find.Execute Replace:=wdReplaceAll
Next

If (Not fso.FolderExists(sPathNew)) Then fso.CreateFolder (sPathNew)
wDoc.SaveAs2 sPathNew & Range("G" & rw).Value & "-" & wDoc.Name
wDoc.Close False
Next
End If
MsgBox "Xong!"
Ve:
WordApp.Quit
Set wDoc = Nothing
Set WordApp = Nothing
Set fso = Nothing
Exit Sub
Thoat:
Set Rng = Nothing
End Sub
 
Upvote 0
@thuy2022 :
Bạn tìm trên GPE cái hàm dùng FSO lấy hết các file trong thư mục, rồi dùng kết quả đó đưa vào chạy trong vòng lặp.
 
Upvote 0
@thuy2022 :
Bạn tìm trên GPE cái hàm dùng FSO lấy hết các file trong thư mục, rồi dùng kết quả đó đưa vào chạy trong vòng lặp.
Em không rành về code anh à. anh có thể xem sửa giúp em với. Thật sự bài của anh áp dụng nhiều anh ạ
em xin chân thành cảm ơn anh
 

File đính kèm

Upvote 0
Em không rành về code anh à. anh có thể xem sửa giúp em với. Thật sự bài của anh áp dụng nhiều anh ạ
em xin chân thành cảm ơn anh
Dùng 2 sub ở dưới cùng có tên nick của bạn và đều là trộn 1 người cho nhiều văn bản. Tôi có chú thich trong code.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Dùng 2 sub ở dưới cùng có tên nick của bạn và đều là trộn 1 người cho nhiều văn bản. Tôi có chú thich trong code.
Hay quá anh ơi em cảm ơn anh nhiều. Giờ em chuyển sang trộn nhiều người cho nhiều văn bản. nếu có gì không được em hỏi anh nhé. Thật sự quá sức tưởng với những gì excel mang lại anh nhỉ biết thế này em tham gia diễn đàn sớm sớm rồi...
 
Upvote 0
Hay quá anh ơi em cảm ơn anh nhiều. Giờ em chuyển sang trộn nhiều người cho nhiều văn bản. nếu có gì không được em hỏi anh nhé. Thật sự quá sức tưởng với những gì excel mang lại anh nhỉ biết thế này em tham gia diễn đàn sớm sớm rồi...
Chừ cũng đâu có muộn. Chỉ cần bạn cố 1 chút thôi thì 1 tháng là bạn tự sửa, chắp code được. Còn để viết được thì lâu hơn, bao lâu còn tùy.
 
Upvote 0

File đính kèm

  • 2022-06-09_215345.png
    2022-06-09_215345.png
    2.2 KB · Đọc: 35
  • 2022-06-09_215101.png
    2022-06-09_215101.png
    21.7 KB · Đọc: 33
Lần chỉnh sửa cuối:
Upvote 0
Anh ơi nhờ anh sửa em code trộn nhiều người cho nhiều văn bản với . Em để sub mang tên nick anh ạ
em mày mò mãi mà kết quả chỉ có 1 dòng anh ạ
 

File đính kèm

Upvote 0
Mình làm thế này thì khi trộn nhiều người đến khi kết thúc lệnh thì bị báo lỗi. Vậy thì chổ này nên sửa thế nào bạn?
Sửa dòng đó thành:
wDoc.SaveAs2 Filename:=sPathNew & arrD(i, 1) & ".doc", FileFormat:=0
(Bỏ các tham số dài thòng đằng sau đi nếu không dùng gì tới nó)
 
Upvote 0
Không được anh à. Nhờ anh sửa trên file em gui xem giúp e với
 
Upvote 0
Tôi thấy cái vụ đường dẫn file này có đủ các kiểu yêu cầu của mỗi người. Người thì muốn cố định khỏi chọn, người thì muốn tùy chọn đường dẫn do có thay đổi v.v.. Đi theo hướng dẫn sửa cũng hết giờ. Do đó nếu tôi thì sẽ không "hard code" đường dẫn file mà để thẳng trên sheet luôn cho người dùng muốn kiểu nào cũng được.

Screen Shot 2022-06-10 at 12.15.18.png
 
Upvote 0
Trước đây làm vậy thì có người lại nhờ có hộp thoại chọn folder. Giờ làm hết các trường hợp rồi thì bạn gần đây lại không muốn chọn file doc mà lại muốn lọc lấy hết file doc trong folder để chạy. Chín người mười ý, thế mới mệt --=0
 
Upvote 0
Trước đây làm vậy thì có người lại nhờ có hộp thoại chọn folder. Giờ làm hết các trường hợp rồi thì bạn gần đây lại không muốn chọn file doc mà lại muốn lọc lấy hết file doc trong folder để chạy. Chín người mười ý, thế mới mệt --=0
:D Thêm cái nút mở hộp thoại kế bên là được rồi. Tôi thường thiết kế ứng dụng theo kiểu viết cho người dùng không biết gì về lập trình, chỉ biết vi tính cơ bản để thao tác thôi. Còn viết tool cho người lập trình sử dụng thì lại khác. Có những tính năng, qui ước người dùng phải tuân thủ, làm theo để ứng dụng chạy đúng chứ không phải cái nào cũng sửa theo thói quen dùng, thao tác của họ thì chết luôn. Tất nhiên là thiết kế ứng dụng phải tạo trải nghiệm người dùng một cách thuận tiện, tốt nhất trước đã.
 
Lần chỉnh sửa cuối:
Upvote 0
Em có ý tưởng xin các anh cho ý kiến. Tạo 1 ô B2 trên excel rồi làm cái list cần file nào chọn file đó thêm chế độ All các file mẫu nữa
 
Upvote 0
Trước đây làm vậy thì có người lại nhờ có hộp thoại chọn folder. Giờ làm hết các trường hợp rồi thì bạn gần đây lại không muốn chọn file doc mà lại muốn lọc lấy hết file doc trong folder để chạy. Chín người mười ý, thế mới mệt --=0
Theo ý kiến cá nhân em thì anh nên giữ nguyên bản, bạn nào có nhu cầu khác với nguyên bản thì tự tìm hiểu rồi tùy biến chứ anh cứ đẽo cày giữa đường nghe chừng không ổn.
 
Upvote 0
Anh Tuấn nói đẽo cày giữa đường là hổng đúng rồi diễn đàn là nơi trao đổi học hỏi. từ file bài của anh MaiKa mà sinh ra bao nhiêu chức năng trong quá trình làm. Đơn giản một phần mềm muốn hay thì phải có nhiều ý tưởng anh à. Em cảm ơn anh maika nhiều lắm đã cho em nhiều kiến thức hay và ứng dụng vào thực tế anh à
 
Upvote 0
Theo ý kiến cá nhân em thì anh nên giữ nguyên bản, bạn nào có nhu cầu khác với nguyên bản thì tự tìm hiểu rồi tùy biến chứ anh cứ đẽo cày giữa đường nghe chừng không ổn.

Thực ra trong trường hợp này không thể nói như vậy được bạn.
File của bạn Maika8008, nếu nói về chức năng của ứng dụng này thì không cần bàn cãi là nó rất thiết thực. Nhưng...nếu nói về thiết kế giao diện thao tác, các tính năng hỗ trợ để sử dụng thì file đầu tiên theo ý tưởng chủ quan của bạn ấy, nó chưa thực "đủ" theo các nhu cầu, trải nghiệm thực tế của người dùng. Do đó cần phải tổng hợp các ý kiến sử dụng thực tế để cải tiến lại để nó đáp ứng đúng nhu cầu thực tế hơn, tiện ích hơn là điều cần phải làm. Việc sàng lọc các ý tưởng, nhu cầu của người dùng để đưa vào cải tiến ứng dụng cũng phải cần tranh luận, phản biện xem nhu cầu đó có thiết thực, có phải là nhu cầu của nhiều người v.v.. hay không, nếu đúng thì phải sửa thôi.
Thực tế có nhiều ứng dụng code hay, khủng theo suy nghĩ của người viết nhưng nó không thực tế, đáp ứng nhu cầu thiết thực nên không được người dùng đón nhận, xài cũng do lý do ở trên ảnh hưởng. Viết không đặt mình ở vai trò người dùng, không biết người dùng cần gì, muốn gì, viết không đúng cho đối tượng...

tự tìm hiểu rồi tùy biến
Như tôi có nói ở trên là viết cho người dùng thông thường hay viết cho người lập trình. Nếu bạn Maika8008 xác định viết cho người biết lập trình thì không cần làm thêm gì cả.

Cho đến thời điểm hiện tại, tôi nghĩ thì cái ứng dụng của bạn Maika8008 đã tổng hợp chắc cũng gần đủ các tính năng đáp ứng có thực của người dùng, cải tiến thêm các tính năng phụ thêm, làm thành add in là tuyệt luôn rồi.
 
Lần chỉnh sửa cuối:
Upvote 0
Thực ra trong trường hợp này không thể nói như vậy được bạn.
File của bạn Maika8008, nếu nói về chức năng của ứng dụng này thì không cần bàn cãi là nó rất thiết thực. Nhưng...nếu nói về thiết kế giao diện thao tác, các tính năng hỗ trợ để sử dụng thì file đầu tiên theo ý tưởng chủ quan của bạn ấy, nó chưa thực "đủ" theo các nhu cầu, trải nghiệm thực tế của người dùng. Do đó cần phải tổng hợp các ý kiến sử dụng thực tế để cải tiến lại để nó đáp ứng đúng nhu cầu thực tế hơn, tiện ích hơn là điều cần phải làm. Việc sàng lọc các ý tưởng, nhu cầu của người dùng để đưa vào cải tiến ứng dụng cũng phải cần tranh luận, phản biện xem nhu cầu đó có thiết thực, có phải là nhu cầu của nhiều người v.v.. hay không, nếu đúng thì phải sửa thôi.
Thực tế có nhiều ứng dụng code hay, khủng theo suy nghĩ của người viết nhưng nó không thực tế, đáp ứng nhu cầu thiết thực nên không được người dùng đón nhận, xài cũng do lý do ở trên ảnh hưởng. Viết không đặt mình ở vai trò người dùng, không biết người dùng cần gì, muốn gì, viết không đúng cho đối tượng...


Như tôi có nói ở trên là viết cho người dùng thông thường hay viết cho người lập trình. Nếu bạn Maika8008 xác định viết cho người biết lập trình thì không cần làm thêm gì cả.

Cho đến thời điểm hiện tại, tôi nghĩ thì cái ứng dụng của bạn Maika8008 đã tổng hợp chắc cũng gần đủ các tính năng đáp ứng có thực của người dùng, cải tiến thêm các tính năng phụ thêm, làm thành add in là tuyệt luôn rồi.
Vâng anh, em thấy anh Maika8008 cứ chạy theo các ý kiến của các bạn có nhu cầu khác nhau nhiều quá nên trộm nghĩ vậy thôi anh. Em cảm ơn ý kiến góp ý của anh ạ.
 
Upvote 0
kết câu của bác quá
Cho đến thời điểm hiện tại, tôi nghĩ thì cái ứng dụng của bạn Maika8008 đã tổng hợp chắc cũng gần đủ các tính năng đáp ứng có thực của người dùng, cải tiến thêm các tính năng phụ thêm, làm thành add in là tuyệt luôn rồi.
 
Upvote 0
Screen Shot 2022-06-10 at 15.36.29.png

Ý kiến thêm về file của bạn Maika8008:
- Do có nhiều yêu cầu đưa ra nên bạn cứ mỗi nhu cầu là tạo một menu cho nó. Tôi nhìn lại thì thấy bạn có thể gộp cái menu [Trộn 1 người 1 văn bản] và [Trộn nhiều người 1 văn bản] làm thành 1 menu vì cơ bản là giống nhau, nếu danh sách 1 người thì trộn 1, nếu danh sách nhiều người thì trộn hết danh sách. Chưa kể tính năng là trộn theo danh sách được chọn nữa đó :D . Ví dụ tôi muốn trộn và gửi mail cho phòng kinh doanh, gửi cho nhóm khách hàng theo khu vực ....
- Tương tự [Trộn 1 người cho nhiều văn bản] hay [Trộn tất cả cho nhiều văn bản] cũng có điểm tương đồng -> gộp luôn cho gọn code.

Kinh nghiệm tôi là liệt kê ra các nhu cầu rồi phác thảo ra giấy cái giao diện (Form) thao tác như thế nào đáp ứng đủ các nhu cầu đó mà không bị rườm ra, dài dòng, tránh thiếu sót...Bạn có thể tham khảo cái tool Figma để phác thảo giao diện khá hay.
 
Upvote 0
View attachment 277146

Ý kiến thêm về file của bạn Maika8008:
- Do có nhiều yêu cầu đưa ra nên bạn cứ mỗi nhu cầu là tạo một menu cho nó. Tôi nhìn lại thì thấy bạn có thể gộp cái menu [Trộn 1 người 1 văn bản] và [Trộn nhiều người 1 văn bản] làm thành 1 menu vì cơ bản là giống nhau, nếu danh sách 1 người thì trộn 1, nếu danh sách nhiều người thì trộn hết danh sách. Chưa kể tính năng là trộn theo danh sách được chọn nữa đó :D . Ví dụ tôi muốn trộn và gửi mail cho phòng kinh doanh, gửi cho nhóm khách hàng theo khu vực ....
- Tương tự [Trộn 1 người cho nhiều văn bản] hay [Trộn tất cả cho nhiều văn bản] cũng có điểm tương đồng -> gộp luôn cho gọn code.

Kinh nghiệm tôi là liệt kê ra các nhu cầu rồi phác thảo ra giấy cái giao diện (Form) thao tác như thế nào đáp ứng đủ các nhu cầu đó mà không bị rườm ra, dài dòng, tránh thiếu sót...Bạn có thể tham khảo cái tool Figma để phác thảo giao diện khá hay.
Cảm ơn bạn đã có những nhận xét, góp ý hữu ích. Có lẽ sắp đến tôi sẽ cố đưa nó thành add-in. Tôi đang ngâm kíu VSTO của VB.Net nên nếu được thì đây có thể là add-in đầu tay.
 
Upvote 0
Cảm ơn bạn đã có những nhận xét, góp ý hữu ích. Có lẽ sắp đến tôi sẽ cố đưa nó thành add-in. Tôi đang ngâm kíu VSTO của VB.Net nên nếu được thì đây có thể là add-in đầu tay.
:thumbs::thumbs:. VSTO hoặc Excel - DNA. Tôi cũng đang xem tài liệu về Excel DNA.
 
Upvote 0
Bài của anh maika hôm nay không thấy Ai có ý tưởng hay tồn tại gì nhỉ chắc full chức năng rùi
 
Upvote 0
Hôm nay là ngày kỷ niệm 2 năm tôi gia nhập cộng đồng GPE. Trước khi có thể viết được thành 1 add-in cho Excel, tôi cập nhật lại file 1 chút cho sáng sủa, đầy đủ hơn.

CẬP NHẬT 12/06/2022: Làm gọn code và dùng userform để chọn tham số đáp ứng tất cả yêu cầu của các thành viên từ trước đến nay trong chủ đề.

Các bạn vui lòng tải file tại bài #1.

P/S: Tôi chưa test kỹ nên có lỗi gì, các bạn vui lòng báo lại tôi để chỉnh sửa.
 
Lần chỉnh sửa cuối:
Upvote 0
Hôm nay là ngày kỷ niệm 2 năm tôi gia nhập cộng đồng GPE. Trước khi có thể viết được thành 1 add-in cho Excel, tôi cập nhật lại file 1 chút cho sáng sủa, đầy đủ hơn.

CẬP NHẬT 12/06/2022: Làm gọn code và dùng userform để chọn tham số đáp ứng tất cả yêu cầu của các thành viên từ trước đến nay trong chủ đề.

Các bạn vui lòng tải file tại bài #1.

P/S: Tôi chưa test kỹ nên có lỗi gì, các bạn vui lòng báo lại tôi để chỉnh sửa.
Ủa??? chủ post quên đính kèo file hay sao ý nhỉ? Thấy mỗi file word thôi bạn ơi.
 
Upvote 0
Tối qua nhìn thấy @Maika8008@ongke0711 đang nghiên cứu cái VSTO và Excel DNA nên ngứa tay làm chơi cái này thử, nhá hàng cho xem phát.\
Hay quá bạn.Thời gian chạy rất nhanh, nó hơn code VBA ở chỗ này. Vậy khi cần tôi có thể tham khảo, nhờ bạn hướng dẫn thêm nhé, khi code gặp vướng mắc. Hình như bạn Maika8008 đang viết bằng VB.NET chứ không phải C# nhưng cơ bản nó cũng giống nhau, có thể tham khảo được.
 
Upvote 0
Hay quá bạn.Thời gian chạy rất nhanh, nó hơn code VBA ở chỗ này. Vậy khi cần tôi có thể tham khảo, nhờ bạn hướng dẫn thêm nhé, khi code gặp vướng mắc. Hình như bạn Maika8008 đang viết bằng VB.NET chứ không phải C# nhưng cơ bản nó cũng giống nhau, có thể tham khảo được.
Bạn @giaiphap thì đã có "giải pháp" từ sớm rồi, nhất là về việc làm add-in.
 
Upvote 0
Những ai có nhu cầu và đã từng sử dụng chức năng Mail Merge của MS Word dùng dữ liệu trên bảng tính Excel đều biết nó hoạt động như thế nào. Không ít trong số đó từng gặp những rắc rối về định dạng số, ngày tháng khi trộn, hoặc khi chuyển file hoạt động tốt từ máy này sang máy khác lại sinh ra khó bảo.

Với việc dùng VBA để trộn thì:
ƯU ĐIỂM:
- Dễ làm ngay cả với người mới. Thú thật khi mới dùng Mail Merge trong mấy lần đầu tiên tôi rất lúng túng, không biết phải làm thế nào để nạp dữ liệu, chèn trường
- Không có các lỗi: định dạng number không như ý muốn, bên Excel 1 đường nhưng sang Word lại 1 nẻo dù đã chỉnh sửa định dạng của Merge Fields , đảo ngày sang tháng.
- Không phát sinh lỗi khi chuyển sang máy tính khác (trừ việc cần thêm thư viện Microsoft Word tại cửa sổ VBA)
NHƯỢC ĐIỂM:
- Chậm. Tốc độ anh này nếu so với Mail Merge cũng như so đi xe đạp với xe máy --=0

Ứng dụng sở trường của nó không phải ở việc trộn và in hàng loạt như giấy mời, mà là ở việc trộn mỗi lần cho nhiều file mẫu khác nhau nhưng trong các file ấy dùng lặp đi lặp lại 1 số thông tin thay đổi. Ví dụ khi bạn có một bộ văn bản cho 1 công việc gồm: Hợp đồng, phụ lục, thông báo, giấy mời, quy chế, nghiệm thu, thanh lý... mỗi lần dùng cho 1 đối tác, thì bạn rất dễ nhập sai thông tin đối tác, trích yếu công việc, ngày giờ tiến hành, địa điểm... hoặc khi sửa lại từ đối tác này dùng cho đối tác khác rất dễ bị râu ông nọ cắm cằm bà kia.

CÁCH DÙNG:
- Chuẩn bị file Word mẫu (ở trạng thái đóng). Tôi đã chuẩn bị sẵn 1 file mẫu ví dụ kèm theo.
- Chuẩn bị bảng dữ liệu như file Excel đính kèm. Nhập đường dẫn file Word mẫu tại ô E1 , tên file Word mẫu tại ô E2 của file Excel.
- Bấm nút Gửi Field sang file Word mẫu. Từ các trường nhận được ở cuối file Word mẫu (tên trường bắt đầu bằng dấu $), bạn chép chúng đến các vị trí mong muốn và định dạng theo ý thích. Chép xong xóa các trường cuối file đi, lưu, đóng lại.
- Bấm Trộn để tiến hành. Các file đã trộn được đặt tên theo tên đối tác, lưu cùng đường dẫn với file Word mẫu.

CẬP NHẬT 29/07/2021: Sửa code để tăng tốc độ khi trộn hàng loạt toàn bộ dòng
CẬP NHẬT 07/12/2021: Giữ số 0 đầu số chứng minh nhân dân hoặc số điện thoại
CẬP NHẬT 17/05/2022: Trộn thông tin 1 người vào nhiều mẫu .docx khác nhau bằng hộp thoại chọn file. Văn bản đã trộn được lưu ở thư mục con có tên của người trộn. Nếu thư mục chưa tồn tại thì tự động được tạo mới. Tải file đính kèm tại bài #97
CẬP NHẬT 12/06/2022:
Làm gọn code và dùng userform để chọn tham số đáp ứng tất cả yêu cầu của các thành viên từ trước đến nay trong chủ đề.
Em chào anh ạ. Đầu tiên, em xin cảm ơn anh vì đã chia sẻ file rất hay và hữu ích. Trong quá trình sử dụng, cá nhân em có một vài ý kiến, mong anh đọc và nếu có thể xin nhờ anh chỉnh sửa ạ.
1. Là về tên trường, hiện tại nếu không định dạng dạng màu thì code chạy khá chậm ( đây là do em thấy vậy, không biết mọi người dùng thế nào). Ở đây nếu có thể, mong anh xem nếu để tên trường ở dạng $Tên trường$ tức là mình bắt đầu và kết thúc tên trường bằng $ và không cần định dạng khác nữa ấy ạ.
2. Nếu dữ liệu trong ô quá dài, sẽ bị mất một phần dữ liệu. giống như ở trong chức năng mailings của word ấy ạ, nếu quá 256 ký tự thì sẽ bị thiếu phần ký tự bị quá. nếu dùng mailings thì em dùng cách cho 1 ô trong 8 dòng đầu số ký tự nhiều nhất có thể, vậy trong code của mình có xử lý được vấn đề này luôn không ạ.
Trên đây là ý kiến cá nhân em khi sử dụng file anh chia sẻ, mong anh xem xét ạ. Một lần nữa em xin cảm ơn anh và chúc anh sức khỏe.
 
Upvote 0
Em chào anh ạ. Đầu tiên, em xin cảm ơn anh vì đã chia sẻ file rất hay và hữu ích. Trong quá trình sử dụng, cá nhân em có một vài ý kiến, mong anh đọc và nếu có thể xin nhờ anh chỉnh sửa ạ.
1. Là về tên trường, hiện tại nếu không định dạng dạng màu thì code chạy khá chậm ( đây là do em thấy vậy, không biết mọi người dùng thế nào). Ở đây nếu có thể, mong anh xem nếu để tên trường ở dạng $Tên trường$ tức là mình bắt đầu và kết thúc tên trường bằng $ và không cần định dạng khác nữa ấy ạ.
2. Nếu dữ liệu trong ô quá dài, sẽ bị mất một phần dữ liệu. giống như ở trong chức năng mailings của word ấy ạ, nếu quá 256 ký tự thì sẽ bị thiếu phần ký tự bị quá. nếu dùng mailings thì em dùng cách cho 1 ô trong 8 dòng đầu số ký tự nhiều nhất có thể, vậy trong code của mình có xử lý được vấn đề này luôn không ạ.
Trên đây là ý kiến cá nhân em khi sử dụng file anh chia sẻ, mong anh xem xét ạ. Một lần nữa em xin cảm ơn anh và chúc anh sức khỏe.
1. Có màu hay không, có $ ở cuối hay không thì đâu ảnh hưởng gì đến tốc độ xử lý!
2. Vấn đề 256 ký tự tôi sẽ xem lại thử có cách nào xử lý không.
Nhưng tôi chẳng hiểu cái 8 dòng đầu của bạn là thế nào: nhiều nhất có thể là sao, tại sao là 8 dòng, nó giải quyết vấn đề gì?
 
Upvote 0
1. Có màu hay không, có $ ở cuối hay không thì đâu ảnh hưởng gì đến tốc độ xử lý!
2. Vấn đề 256 ký tự tôi sẽ xem lại thử có cách nào xử lý không.
Nhưng tôi chẳng hiểu cái 8 dòng đầu của bạn là thế nào: nhiều nhất có thể là sao, tại sao là 8 dòng, nó giải quyết vấn đề gì?
vâng, không hiểu sao khi e thao tác thì việc định dạng màu chữ thì sẽ chạy nhanh hơn nên em nói vậy thôi ạ. Còn cái vấn đề 2, cái 8 dòng đầu là em đang nói về chức năng mail merge có sẵn trong word và excel ạ, chứ không phải nói về file của anh. Em đang nói về 2 vấn đề hạn chế giống nhau giữa file của anh và chức năng mai merge, và cách xử lý vấn đề ấy trên mail merge mà em hay dùng thôi ạ.
 
Upvote 0
2. Nếu dữ liệu trong ô quá dài, sẽ bị mất một phần dữ liệu. giống như ở trong chức năng mailings của word ấy ạ, nếu quá 256 ký tự thì sẽ bị thiếu phần ký tự bị quá. nếu dùng mailings thì em dùng cách cho 1 ô trong 8 dòng đầu số ký tự nhiều nhất có thể, vậy trong code của mình có xử lý được vấn đề này luôn không ạ.
Tôi cũng đang làm một file dựa trên ý tưởng của bạn Maika8008, dùng kết hợp chức năng có sẳn Mail Merge của Word + VBA để tùy biến, xem thử tốc độ thực thi có nhanh hơn so với dùng "Replace All" không.
- Về đặt tên cột có ký tự $ thì có thể viết cái code để thêm hàng loạt cho nhanh. Tôi thì dùng dấu [ ].
- Để khắc phục vụ dòng text > 255 ký tự thì cách bạn làm là đúng cho chức năng Mail merger có sẳn của Word vì nó dùng OLEDB để lấy dữ liệu -> nó tham khảo 8 dòng đầu tiên. Đối với Replace ALL thì đổi qua dùng phương thức gõ text trực tiếp mới được.

Mã:
WordApp.Selection.TypeText Text:=CStr(Cells(rw, k))
 
Upvote 0
Và e xin phép thêm 1 vấn đề nữa ạ. Ví dụ như trong bảng dữ liệu có 10 dòng, nếu mình ẩn đi dòng nào thì file word khi xuất ra sẽ không có văn bản tương ứng, liệu điều ấy có thể làm được không ạ. giả sư như em ẩn đi dòng số 8 trong file excel, thì lúc văn bản xuất ra chỉ có từ 1-7 và từ 9-10 ấy ạ.
 
Upvote 0
Tôi cũng đang làm một file dựa trên ý tưởng của bạn Maika8008, dùng kết hợp chức năng có sẳn Mail Merge của Word + VBA để tùy biến, xem thử tốc độ thực thi có nhanh hơn so với dùng "Replace All" không.
- Về đặt tên cột có ký tự $ thì có thể viết cái code để thêm hàng loạt cho nhanh. Tôi thì dùng dấu [ ].
- Để khắc phục vụ dòng text > 255 ký tự thì cách bạn làm là đúng cho chức năng Mail merger có sẳn của Word vì nó dùng OLEDB để lấy dữ liệu -> nó tham khảo 8 dòng đầu tiên. Đối với Replace ALL thì đổi qua dùng phương thức gõ text trực tiếp mới được.

Mã:
WordApp.Selection.TypeText Text:=CStr(Cells(rw, k))
Đúng rồi:
1. Nếu dùng code vba mail merge thì chắc là nhanh hơn.
2. Thêm $ (hoặc gì cũng được) hàng loạt cho nhanh, tôi lại không nghĩ đến.
Còn vụ TypeText hay đó, để tôi dùng thử
 
Upvote 0
Chào cả nhà em thấy code anh maika chạy tuyệt vời tốc độ nhanh mà. File Em có tổng 95 cột tiêu đề . tổng ký tự là 1000
mà có thấy sao đâu
Em chỉ thấy có tồn tại của excel mà chưa biết xử lý thế nào
Khi chèn dòng hoặc chèn cột dữ liệu ô thay đổi dẫn đến người dùng phải sửa code
 
Upvote 0
Em muốn khai báo dòng dựa vào ký tự [Ten] thì như thế nào anh
Mục đích khắc phục lỗi chèn dòng anh ạ. khi dòng có ký tự là [Ten] thì biến i sẽ chạy từ đó
 

File đính kèm

Upvote 0
Và e xin phép thêm 1 vấn đề nữa ạ. Ví dụ như trong bảng dữ liệu có 10 dòng, nếu mình ẩn đi dòng nào thì file word khi xuất ra sẽ không có văn bản tương ứng, liệu điều ấy có thể làm được không ạ. giả sư như em ẩn đi dòng số 8 trong file excel, thì lúc văn bản xuất ra chỉ có từ 1-7 và từ 9-10 ấy ạ.
Tôi đã cập nhật chức năng cho 2 yêu cầu của bạn. Tải file tại bài #1.
 
Upvote 0
Tôi đã cập nhật chức năng cho 2 yêu cầu của bạn. Tải file tại bài #1.
tuyệt quá anh ạ... em có vấn đề nhờ anh ạ. Ví dụ tại trường $Số VB em muốn để font chữ là Wingdings 2... sang bên file word font chữ được giữ nguyên là Wingdings 2.. thì có cách nào không ạ
 
Upvote 0
tuyệt quá anh ạ... em có vấn đề nhờ anh ạ. Ví dụ tại trường $Số VB em muốn để font chữ là Wingdings 2... sang bên file word font chữ được giữ nguyên là Wingdings 2.. thì có cách nào không ạ
Bạn giải thích sao phải chọn 1 font chữ không phải unicode như vậy?
 
Upvote 0
Anh xem có cách nào khắc phục lỗi khi chèn dòng hoặc chèn cột thì phải sửa lại code không anh
 
Upvote 0
Anh xem có cách nào khắc phục lỗi khi chèn dòng hoặc chèn cột thì phải sửa lại code không anh
Tôi không hiểu bạn muốn gì nên bên trên tôi đã lờ đi, không phản hồi. Bạn ưa chèn dòng chèn cột gì thì chèn nhưng trong VB Word phải điền tên cột (trường) cần trộn chứ cần gì sửa code?

P/S: Bạn thuộc tập hợp người hỏi (đặt vấn đề) rất không rõ ràng. Hầu hết đáp ứng yêu cầu cho bạn là do tôi đọc đi đọc lại để cố đoán ý bạn chứ thực ra mệt lắm.
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi đã cập nhật chức năng cho 2 yêu cầu của bạn. Tải file tại bài #1.
Dạ anh cho em nhờ chút ạ. Khi e chạy file của anh tải lên thì bình thường. Nhưng khi em thay đổi tên trường thì code báo lỗi như hình sau ạ. Anh xem hộ em với ạ.
 

File đính kèm

  • 1655196868800.png
    1655196868800.png
    345.3 KB · Đọc: 19
Upvote 0
dạ... em muốn làm kiểu dấu tích ☑ để đánh giá ạ
Thế là bạn muốn chèn symbol chứ sao lại nói là font wingdings 2 nhỉ?
Bài đã được tự động gộp:

Dạ anh cho em nhờ chút ạ. Khi e chạy file của anh tải lên thì bình thường. Nhưng khi em thay đổi tên trường thì code báo lỗi như hình sau ạ. Anh xem hộ em với ạ.
Bạn không nên bắt tôi phải đoán/làm mù như thế!. Lẽ ra bạn phải đưa cái file Excel nguồn + file Word mẫu cần trộn của bạn thì tôi mới biết tại sao xảy ra lỗi chứ.
 
Upvote 0
Thế là bạn muốn chèn symbol chứ sao lại nói là font wingdings 2 nhỉ?
Bài đã được tự động gộp:


Bạn không nên bắt tôi phải đoán/làm mù như thế!. Lẽ ra bạn phải đưa cái file Excel nguồn + file Word mẫu cần trộn của bạn thì tôi mới biết tại sao xảy ra lỗi chứ.
Dạ. Để em xem lại co phải do em vừa táy máy đổi tài khoản user của Win không ạ. vì từ lúc em thay tài khoản thì dính lỗi ạ.
 
Upvote 0

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

Back
Top Bottom