2013-06-26 54 views
6

Tôi đang cố lưu tài liệu Word bằng Excel VBA, nhưng tôi gặp lỗi "Thành phần ActiveX không thể tạo đối tượng".Lỗi thời gian chạy '429': Thành phần ActiveX không thể tạo đối tượng VBA

Khi tôi gỡ lỗi, lỗi xuất phát từ dòng: Set wrdApps = CreateObject("Word.Application"). Nó hoạt động tốt, nhưng sau đó nó chỉ bắt đầu cho tôi lỗi này. Có ai biết làm thế nào để sửa lỗi này? Cảm ơn đã giúp đỡ!

Sub saveDoc() 

Dim i As Integer 
For i = 1 To 2661: 
    Dim fname As String 
    Dim fpath As String 

    With Application 
     .DisplayAlerts = False 
     .ScreenUpdating = False 
     .EnableEvents = False 
    End With 

    fname = ThisWorkbook.Worksheets(3).Range("H" & i).Value 
    fpath = ThisWorkbook.Worksheets(3).Range("G" & i).Value 

    Dim wrdApps As Object 
    Dim wrdDoc As Object 

    Set wrdApps = CreateObject("Word.Application") 

    'the next line copies the active document- the ActiveDocument.FullName 
    ' is important otherwise it will just create a blank document 
    wrdApps.documents.Add wrdDoc.FullName 

    Set wrdDoc = wrdApps.documents.Open(ThisWorkbook.Worksheets(3).Range("f" & i).Value) 
    ' do not need the Activate, it will be Activate 
    wrdApps.Visible = False 

    ' the next line saves the copy to your location and name 
    wrdDoc.SaveAs "I:\Yun\RTEMP DOC & PDF\" & fname 

    'next line closes the copy leaving you with the original document 
    wrdDoc.Close 

    On Error GoTo NextSheet: 
NextSheet: 
    Resume NextSheet2 
NextSheet2: 
Next i 

With Application 
    .DisplayAlerts = True 
    .ScreenUpdating = True 
    .EnableEvents = True 
End With 

End Sub 
+0

** [Bài đăng này] (http://www.ozgrid.com/forum/showthread.php?t=50936) ** trên OzGrid có thể hữu ích. Chỉ có sự khác biệt tôi thấy từ những gì bạn có là wrd.Apps sẽ được thiết lập như Word.Application và wrd.Doc sẽ được thiết lập như Word.Document. – chuff

+0

thử chạy sửa chữa trên Office và khởi động lại máy tính của bạn ... mã bạn có 'CreateObject (" Word.Application ")' sẽ hoạt động tốt –

+0

nếu đối tượng bạn đang cố gắng "nhận" có đặc quyền nâng cao. nó sẽ trả về lỗi 429 - không mở với tư cách quản trị viên – Hightower

Trả lời

0

Có phải wrdDoc được khởi tạo? Bạn đang cố gắng sử dụng wrdDoc trước khi đối tượng đã được Đặt?

wrdApps.documents.Add wrdDoc.FullName 
Set wrdDoc = wrdApps.documents.Open(ThisWorkbook.Worksheets(3).Range("f" & i).Value) 

Dòng đầu tiên có phải là ActiveDocument.FullName như trong nhận xét? Vì vậy:

wrdApps.documents.Add ActiveDocument.FullName 
0

Kiểm tra xem bạn có thư viện đối tượng Microsoft Excel và Thư viện Object Microsoft Office đánh dấu trong Tools> Tài liệu tham khảo và rằng họ đã được đăng ký.

Nếu chúng được chọn, bạn có thể cần chạy Phát hiện và sửa chữa từ menu Trợ giúp Excel để đảm bảo rằng cài đặt Office không bị hỏng theo bất kỳ cách nào.

Các vấn đề liên quan