Hỏi về Code lưu file (Nếu có post nhầm mong Mod chuyển dùm mình nha!)

Liên hệ QC

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
 
có ai giúp mình không? mình thử mãi từ hôm qua đến giờ mà không nghĩ ra được!
 
Thử template.Close xem bạn? Cái này là ví dụ close save không cần hỏi:

PHP:
On Error GoTo errorHandler 
ActiveDocument.Close SaveChanges:=wdSaveChanges
errorHandler: 
If Err = 4198 Then MsgBox "Document was not closed"

Cái này mình không thử nên không bảo đảm nó chạy 100% nhé.-0-/.
 
Lần chỉnh sửa cuối:
cám ơn bạn Vô danh tiểu tốt nha! nhưng khi mình thử thì kết quả nó báo debug ngay tại đoạn này
"t.Find.Execute _
Findtext:=Sheet1.Cells(1, j).Value, _
ReplaceWith:=Sheet1.Cells(i + 1, j).Value, _
Replace:=wdReplaceAll
"
cái mình muốn là sau khi nó lưu tên file như thế này "
template.SaveAs Filename:=ThisWorkbook.Path & Application.PathSeparator & Sheet1.Cells(i + 1, 1).Value & "-" & Sheet1.Cells(i + 1, 7).Value & "_TB.doc"" thì nó đóng file này, còn file gốc cần merge thì vẫn chạy, cứ liên tục như thế.
 
Web KT

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

Back
Top Bottom