Cần giúp Gỡ rối auto điền data từ Excel vào word

Liên hệ QC

audi_r08

Thành viên mới
Tham gia
2/12/14
Bài viết
4
Được thích
0
Em chào các bác, các bác giúp em với em làm mộ chương trình như sau: Điền thông tin từ file excel vào một văn bản word bằng phương pháp tìm tiêu đề tương tự của excel rồi điền value vào word. Sau mỗi lần điền thông tin của mỗi chủ thể, file word sẽ được lưu lại tương ứng với tên chủ thể.

Tuy nhiên đoạn code: t.Find.Execute FindText:=Sheet1.Cells(1, j).Value, ReplaceWith:=Sheet1.Cells(i + 1, j).Value, Replace:=wdReplaceAll không tìm được ký tự tương ứng nên replaceAll luôn =0 (ko điền được data, file lưu lại chỉ là file gốc)

File em đính kèm dưới, rất mong các cao nhân giúp đỡ, em đang rất cần
1539690659965.png
 

File đính kèm

Trong code có dòng
Mã:
t.Find.Execute FindText:=Sheet1.Cells(1, j).Value, ReplaceWith:=Sheet1.Cells(i + 1, j).Value, Replace:=wdReplaceAll
wdReplaceAll là hằng số của Word. Code chạy trong Excel nên "người ta" không hiểu nó là cái gì. Do bạn không có Option Explicit nên "người ta" cho đó là biến có tên là wdReplaceAll nhưng không được khai báo tường minh. Do cho là biến mà không được thiết lập giá trị vào lúc "chào buổi sáng" nên wdReplaceAll = Empty. Khi chạy code thì Empty đó được chuyển thành 0. Mà 0 chính là wdReplaceNone. Vì thế không có gì được thay thế cả.


Thuốc chữa: Sau dòng Sub chidoan_nq() thì thêm dòng
Mã:
Const wdReplaceAll = 2

Bonus:
1. Sau dòng template.SaveAs Filename: ... thì thêm dòng
Mã:
template.Close

2. Chả cần code làm gì. Mail merge thôi.
 
Upvote 0
Trong code có dòng
Mã:
t.Find.Execute FindText:=Sheet1.Cells(1, j).Value, ReplaceWith:=Sheet1.Cells(i + 1, j).Value, Replace:=wdReplaceAll
wdReplaceAll là hằng số của Word. Code chạy trong Excel nên "người ta" không hiểu nó là cái gì. Do bạn không có Option Explicit nên "người ta" cho đó là biến có tên là wdReplaceAll nhưng không được khai báo tường minh. Do cho là biến mà không được thiết lập giá trị vào lúc "chào buổi sáng" nên wdReplaceAll = Empty. Khi chạy code thì Empty đó được chuyển thành 0. Mà 0 chính là wdReplaceNone. Vì thế không có gì được thay thế cả.


Thuốc chữa: Sau dòng Sub chidoan_nq() thì thêm dòng
Mã:
Const wdReplaceAll = 2

Bonus:
1. Sau dòng template.SaveAs Filename: ... thì thêm dòng
Mã:
template.Close

2. Chả cần code làm gì. Mail merge thôi.

Bác quả là cao minh em sửa theo bác nói được ngay, bác có thể cho em sdt được không? cho em hỏi han chút ạ
 
Upvote 0
Web KT

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

Back
Top Bottom