Lỗi “variable not defined” trong vba
Xin chào mọi người, em là lính mới trong lập trình vba. Em copi đoạn code vào mà chạy toàn báo lỗi variable not defined , em tìm mãi mà ko rõ sai chỗ nào, mong mọi người chỉ giúp em với
Sub Xuatfile() Dim i As Long, j As Long Dim template As Object Dim t As Object i = 1 With CreateObject("word.application") .Visible = True Set template = .documents.Open("C:temphopdong_temp.docx") Set t = template.Content t.Find.Execute _ FindText:="abc", _ ReplaceWith:="def", _ Replace:=wdReplaceAll template.SaveAs Filename:=ThisWorkbook.Path & Application.PathSeparator & i & "-giay_moi.docx" .Quit End With Set t = Nothing Set template = Nothing End Sub
Sửa wdReplaceAll thành số 2, cụ thể chổ.
Replace:=wdReplaceAll
Thành
Replace:=2
đây ạ em sửa bài đính kèm file phía trên
1675846460sao sửa chỗ đó thành 2 lại được vậy anh nhỉ, em chưa hiểu lắm
Nó nằm ở chổ này nè.
learn.microsoft.com/en-us/office/vba/api/word.wdreplace
Thay hằng sô bằng "magic numbers" chỉ là phản ứng tạm, nởi nó làm cho code khó hiểu và khó copy/paste.
Khi tréo applicatis như vậy thì người ta có hai giải pháp chính:
1. Dùng reference và kết nối sớm. Tuy nhiên cách này hơi bất lợi là cóp qua nới khác thì lại ohair bảo đảm có refeences.
2. Nếu kết nối trễ như bài này thì người ta đặt thêm cái enum
Enum MyWDEnums
wdReplaceNone = 0
wdReplaceOne = 1
wdReplaceAll = 2
End EnumsVè sau này, muố copy code Word ở đâu cũng có thể chỉ cần thêm cái tiền tố MyWDEnums
Ví dụ như bài này thì sửa
Replace:=wdReplaceAll thành Replace:=MyWDEnums.wdReplaceAll
www.giaiphapexcel.com/diendan/threads/l%E1%BB%97i-variable-not-defined-trong-vba.163975/
Xây dựng Lương 3P, KPI cho Doanh nghiệp
Làm thế nào để trả lương cho nhân viên chính xác nhất? Đây là một trong những câu hỏi khó trong quản trị nhân...
Xem khóa học
Bình luận