Tự tạo một file Word mới

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
Em muốn tạo một file word mới mà nó tự lưu tên file được quy định trong code và lưu ngay tại thư mục chứa file Excel này, em viết xong rùi mà không biết lỗi chỗ nào mà nó không lưu và tự đóng file lại được, các bác xem hộ em sai chỗ nào với! em cám ơn mấy bác nhiều!!! Mong chờ mấy bác hỗ trợ cho em!!!
 

File đính kèm

Dạ, em chưa biết anh ạ.
Thấy file khác kiểu thì phải mở lên xem trước khi đánh giá.

Em muốn tạo một file word mới mà nó tự lưu tên file được quy định trong code và lưu ngay tại thư mục chứa file Excel này
Bạn để On Error Resume next thì làm sao biết lỗi đâu mà sửa. Năm sáu lỗi khác nhau bị bỏ qua.

PHP:
Sub Creator_word()
Dim wdapp As Object, wddoc As Object
Dim strdocname As String
'On Error Resume Next'
'Set wdapp = GetObject(, "word.Application")'
'If Err.Number = 429 Then'
    'Err.Clear'
    Set wdapp = CreateObject("Word.Application")
'End If'
wdapp.Visible = True
'wdapp.Active'
Set wddoc = wdapp.Documents.Add
'wddoc.Active'
wddoc.SaveAs Filename:=ThisWorkbook.Path & Application.PathSeparator & "Tao_Word.doc"
wddoc.Close

wdapp.Quit
Set wdapp = Nothing
Set wddoc = Nothing
End Sub
 
Nếu không mở server mới như chủ ý trong tập tin thì
Mã:
Sub Creator_word()
Dim isCreate As Boolean, wdapp As Object, wddoc As Object
Dim strdocname As String
    On Error Resume Next
    Set wdapp = GetObject(, "word.Application")
    If wdapp Is Nothing Then
        Set wdapp = CreateObject("Word.Application")
        isCreate = True
    End If
    On Error GoTo 0
    wdapp.Visible = True
    Set wddoc = wdapp.Documents.Add
    wddoc.SaveAs Filename:=ThisWorkbook.Path & Application.PathSeparator & "Tao_Word.doc"
    wddoc.Close
    If isCreate Then wdapp.Quit
    Set wddoc = Nothing
    Set wdapp = Nothing
End Sub
 
Em xin lỗi các bác, giờ em mới lên trả lời được, do em không có máy tính, em làm trên cơ quan á, giờ phải đăng nhập trên điện thoại á, em cám ơn các bác quan tâm chủ đề này, chả là lúc em làm cái file có nội dung word mà toàn thấy người ta phải có file word sẵn mà không có ai viết là làm sao tạo luôn được file word có sẵn, nên em mới mạo muội thử làm xem như thế nào. "ý em đã tự động thì sao không tự động hẳn" mà phải có tí thủ công trong đó ý mà.
Bài đã được tự động gộp:

chủ thớt chắc phải thêm mắm muối mì chính vào nữa bác á,hihi. Chứ nếu chỉ tạo file word trắng trơn như vậy thì tạo một file sẵn, rồi dùng lệnh copy file cho nhanh.
Tại em muốn tự động quá ấy mà "nói chung là lười" đó bác ah!!!
Bài đã được tự động gộp:

chủ thớt chắc phải thêm mắm muối mì chính vào nữa bác á,hihi. Chứ nếu chỉ tạo file word trắng trơn như vậy thì tạo một file sẵn, rồi dùng lệnh copy file cho nhanh.
Tại em muốn tự động quá ấy mà "nói chung là lười" đó bác ah!!!
Bài đã được tự động gộp:

Nếu không mở server mới như chủ ý trong tập tin thì
Mã:
Sub Creator_word()
Dim isCreate As Boolean, wdapp As Object, wddoc As Object
Dim strdocname As String
    On Error Resume Next
    Set wdapp = GetObject(, "word.Application")
    If wdapp Is Nothing Then
        Set wdapp = CreateObject("Word.Application")
        isCreate = True
    End If
    On Error GoTo 0
    wdapp.Visible = True
    Set wddoc = wdapp.Documents.Add
    wddoc.SaveAs Filename:=ThisWorkbook.Path & Application.PathSeparator & "Tao_Word.doc"
    wddoc.Close
    If isCreate Then wdapp.Quit
    Set wddoc = Nothing
    Set wdapp = Nothing
End Sub
Em cám ơn bác đã giúp. Ý bác là mở trong server mới là sao bác, bác có thể chỉ giáo cho em được không? Tại em nghĩ chỉ cần lưu cái file word ngay chung vs thư mục của file Excel đang chạy là được rồi.
Bài đã được tự động gộp:

Thấy file khác kiểu thì phải mở lên xem trước khi đánh giá.


Bạn để On Error Resume next thì làm sao biết lỗi đâu mà sửa. Năm sáu lỗi khác nhau bị bỏ qua.

PHP:
Sub Creator_word()
Dim wdapp As Object, wddoc As Object
Dim strdocname As String
'On Error Resume Next'
'Set wdapp = GetObject(, "word.Application")'
'If Err.Number = 429 Then'
    'Err.Clear'
    Set wdapp = CreateObject("Word.Application")
'End If'
wdapp.Visible = True
'wdapp.Active'
Set wddoc = wdapp.Documents.Add
'wddoc.Active'
wddoc.SaveAs Filename:=ThisWorkbook.Path & Application.PathSeparator & "Tao_Word.doc"
wddoc.Close

wdapp.Quit
Set wdapp = Nothing
Set wddoc = Nothing
End Sub
Lúc em viết thì em nhớ nhớ là để cho nó bỏ qua lỗi 429 thường có khi liên kết vs word nên em cũng không để ý, nhờ bác chỉ giờ em mới thấy lúc mình viết ban đầu mình nên bỏ mấy cái On Error Resume next
 
Lần chỉnh sửa cuối:
Lúc em viết thì em nhớ nhớ là để cho nó bỏ qua lỗi 429 thường có khi liên kết vs word nên em cũng không để ý, nhờ bác chỉ giờ em mới thấy lúc mình viết ban đầu mình nên bỏ mấy cái On Error Resume next
Nếu để câu đó phải nắm chắc tất cả lỗi có thể xảy ra, nếu không thì qua khỏi lỗi 429 phải trả về bằng On Error Resume 0 như bài của bác @batman1
Ngoài những lỗi mà tôi xoá bỏ (đánh dấu) câu lệnh, lại còn 1 lỗi là set wddoc, wdapp = nothing trước rồi mới close thì làm gì còn mà close. Chưa nói là phải close wddoc trước rồi mới QUIT wdaap
 
Nếu để câu đó phải nắm chắc tất cả lỗi có thể xảy ra, nếu không thì qua khỏi lỗi 429 phải trả về bằng On Error Resume 0 như bài của bác @batman1
Ngoài những lỗi mà tôi xoá bỏ (đánh dấu) câu lệnh, lại còn 1 lỗi là set wddoc, wdapp = nothing trước rồi mới close thì làm gì còn mà close. Chưa nói là phải close wddoc trước rồi mới QUIT wdaap
Em cám ơn bác đã chỉ, em cứ quen là khi làm trong word là phải có nội dung, nên em cho nó =nothing rùi mới save, mà em quên mất là mình đang tạo tập tin word trắng , ngớ ngẩn thật
 
Em cám ơn bác đã chỉ, em cứ quen là khi làm trong word là phải có nội dung, nên em cho nó =nothing rùi mới save, mà em quên mất là mình đang tạo tập tin word trắng , ngớ ngẩn thật
Sai. Dù cho có cái gì trong word hay không, set nothing rồi không còn làm gì được với cái nothing cả
 
Web KT

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

Back
Top Bottom