Giúp mình giải thích code chuyển từ excel sang word

Liên hệ QC

chinhbibi

Thành viên mới
Tham gia
18/6/12
Bài viết
1
Được thích
0
các bạn giải thích hộ mình code trong VD này với, mình đọc mãi mà không hiểu.
 

File đính kèm

  • hdld_gpe.rar
    24 KB · Đọc: 100
co thay code gi dau?
cai nay chac su dung mail merge
 
Upvote 0
các bạn giải thích hộ mình code trong VD này với, mình đọc mãi mà không hiểu.

Code trong file Excel, nhằm chuyển dữ liệu sang cho các textbox trong file Word để in theo kiểu MailMerger.
(Trong file word có 1 macro dùng để đọc và sửa tên các textbox thành tên có dạng tb... để dễ xử lý)
 
Upvote 0
1 Dim Dc As Object, Hd As Object
2 On Error Resume Next
3 Set Dc = CreateObject("Word.Application")
4 Dc.Documents("\Hopdonglaodong-01.doc").Close
5 Dc.Visible = True
6 Set Hd = Dc.Documents.Open(ThisWorkbook.Path & "\Hopdonglaodong-01.doc")
7 Hd.Shapes("Tb1").TextFrame.TextRange.Text = Me.ListBox1.Column(0)
(8-1) For i = 0 To 4
9 Hd.Shapes("Tb" & i + 2).TextFrame.TextRange.Text = Sheet2.[B1].Offset(i)
(8-2) Next
(10-1) For i = 1 To 7
11 Hd.Shapes("Tb" & i + 6).TextFrame.TextRange.Text = Me.ListBox1.Column(i)
(10-2) Next
12 Set Dc = Nothing
(0-2)End Sub
Giải thích
(0-1) Tạo sự kiện khi click vào nút lệnh In DC và (0-2) kết thúc
1 Khai báo biến để nhận biết khi thực hiện câu lênh
2 Gặp lỗi bỏ qua
3 Khỏi động chương trình Word từ bộ Office
4 Đóng file Hopdonglaodong-01.doc
5 Thực hiện chế độ ẩn file ( True - Hiện); (False - Ẩn)
6 Mở file Hopdonglaodong-01.doc cùng chỗ với file excel đã lưu
7 Gán giá trị vào Shape đã được vẽ trong file word. Tức là Shapes có tên Tb1 lấy giá trị từ Column 0 (không) của Listbox1 trong file excel
(8-1) Khởi động vòng lặp và (8-2) kết thúc vòng lặp
9 Duyệt vào từ thằng shapes được vẽ trong file word nếu thằng nào có tên tương ứng thì sẽ gán giá trị ở sheet 2 vào (Cái này dài dòng lắm giải thích hơi khó bạn chịu khó tìm hiểu)
(10-2) Khởi động vòng lặp và (10-2) kết thúc vòng lặp
11 Giống 9 như lấy giá trị từ Listbox1 tương ứng với Column của nó. (Không hiểu tại sao lấy ở listbox1 tai listbox1 lấy dữ liệu từ sheet2)
12 Giải phóng bộ nhớ của máy tức là cho Dc = Nothing (không có gì)
 
Lần chỉnh sửa cuối:
Upvote 0
1 Dim Dc As Object, Hd As Object
2 On Error Resume Next
3 Set Dc = CreateObject("Word.Application")
4 Dc.Documents("\Hopdonglaodong-01.doc").Close
5 Dc.Visible = True
6 Set Hd = Dc.Documents.Open(ThisWorkbook.Path & "\Hopdonglaodong-01.doc")
7 Hd.Shapes("Tb1").TextFrame.TextRange.Text = Me.ListBox1.Column(0)
(8-1) For i = 0 To 4
9 Hd.Shapes("Tb" & i + 2).TextFrame.TextRange.Text = Sheet2.[B1].Offset(i)
(8-2) Next
(10-1) For i = 1 To 7
11 Hd.Shapes("Tb" & i + 6).TextFrame.TextRange.Text = Me.ListBox1.Column(i)
(10-2) Next
12 Set Dc = Nothing
(0-2)End Sub
Giải thích
(0-1) Tạo sự kiện khi click vào nút lệnh In DC và (0-2) kết thúc
1 Khai báo biến để nhận biết khi thực hiện câu lênh
2 Gặp lỗi bỏ qua
3 Khỏi động chương trình Word từ bộ Office
4 Đóng file Hopdonglaodong-01.doc
5 Thực hiện chế độ ẩn file ( True - Hiện); (False - Ẩn)
6 Mở file Hopdonglaodong-01.doc cùng chỗ với file excel đã lưu
7 Gán giá trị vào Shape đã được vẽ trong file word. Tức là Shapes có tên Tb1 lấy giá trị từ Column 0 (không) của Listbox1 trong file excel
(8-1) Khởi động vòng lặp và (8-2) kết thúc vòng lặp
9 Duyệt vào từ thằng shapes được vẽ trong file word nếu thằng nào có tên tương ứng thì sẽ gán giá trị ở sheet 2 vào (Cái này dài dòng lắm giải thích hơi khó bạn chịu khó tìm hiểu)
(10-2) Khởi động vòng lặp và (10-2) kết thúc vòng lặp
11 Giống 9 như lấy giá trị từ Listbox1 tương ứng với Column của nó. (Không hiểu tại sao lấy ở listbox1 tai listbox1 lấy dữ liệu từ sheet2)
12 Giải phóng bộ nhớ của máy tức là cho Dc = Nothing (không có gì)

thế ở 7 không vẽ mà gán giá trị trực tiếp vào được không bạn
 
Upvote 0
Web KT
Back
Top Bottom