thesaintzero
Thành viên hoạt động
- Tham gia
- 16/3/09
- Bài viết
- 158
- Được thích
- 8
Mình có một cái code mình sưu tầm được trên mạng, (xin lỗi tác giả, mình quên mất site rồi không trích dẫn được), giờ mình lấy ra sử dụng nhưng có một vấn đề như thế này cần mọi người giúp đỡ, chẳng là mình có làm một cái dạng mailmerge bằng code giống như dưới đây, nhưng khi làm thì có quá nhiều dữ liệu (khoảng 500 rows) khi merge sang word lưu dưới dạng file "Thong bao". Tuy nhiên, khi chạy thì file word cứ chạy ra 500 file rồi mới đóng file word một lúc (hoặc là phải tắt bằng tay từng file). Cái mình muốn là sau khi file được lưu sau đoạn code này "template.SaveAs Filename:=ThisWorkbook.Path & Application.PathSeparator & Sheet1.Cells(i + 1, 1).Value & "-" & Sheet1.Cells(i + 1, 7).Value & "_TB.doc"" sẽ tắt 1 file rồi tiếp tục chạy tiếp tới file khác. Chứ không chạy 500 file rồi mới tắt sẽ rất là nặng máy.
Mong mọi người cho ý kiến. Cám ơn mọi người đã đọc!
........
With CreateObject("word.application")
.Visible = True
For i = 1 To num_of_cust
Set template = .Documents.Open(ThisWorkbook.Path & "\Thongbao.doc")
Set t = template.Content
For j = 1 To num_of_column
t.Find.Execute _
Findtext:=Sheet1.Cells(1, j).Value, _
ReplaceWith:=Sheet1.Cells(i + 1, j).Value, _
Replace:=wdReplaceAll
Next
template.SaveAs Filename:=ThisWorkbook.Path & Application.PathSeparator & Sheet1.Cells(i + 1, 1).Value & "-" & Sheet1.Cells(i + 1, 7).Value & "_TB.doc"
Next
.Quit
End With
Set t = Nothing
Set templace = Nothing
End If
End Sub
Mong mọi người cho ý kiến. Cám ơn mọi người đã đọc!
........
With CreateObject("word.application")
.Visible = True
For i = 1 To num_of_cust
Set template = .Documents.Open(ThisWorkbook.Path & "\Thongbao.doc")
Set t = template.Content
For j = 1 To num_of_column
t.Find.Execute _
Findtext:=Sheet1.Cells(1, j).Value, _
ReplaceWith:=Sheet1.Cells(i + 1, j).Value, _
Replace:=wdReplaceAll
Next
template.SaveAs Filename:=ThisWorkbook.Path & Application.PathSeparator & Sheet1.Cells(i + 1, 1).Value & "-" & Sheet1.Cells(i + 1, 7).Value & "_TB.doc"
Next
.Quit
End With
Set t = Nothing
Set templace = Nothing
End If
End Sub