繁体   English   中英

activex组件无法使用word.application创建对象错误

[英]activex component can't create object error with word.application

我正在使用下面提到的代码在word中复制一些值,然后将其复制回excel。

但是得到

运行时错误429 Activex组件无法创建对象。

在格式化系统之前,同一段代码一直在工作。 但是,在新安装后,此方法无法正常工作,并且出现错误。

 Sub Word()
    Application.DisplayAlerts = False
    Dim ws As Worksheet
    Dim Path As String
    Dim objWord As Object
    Dim objDoc As Object

    Path = ActiveWorkbook.Path
    Set inv = Workbooks.Open(Path & "\inv.xls")
    Set test = Workbooks.Open(Path & "\test.xlsx")
    Set ws = inv.Sheets("inv")
    Set Wb = test.Sheets("Sheet1")
    ws.Range("A1").Copy
    Set objWord = CreateObject("Word.Application") <---The error is here
    Set objWord.Visible = True
    Set objDoc = objWord.Documents.Open(Path & "\test.docx")
    objWord.Selection.Paste
    Application.CutCopyMode = False
       objDoc.Range(0, objDoc.Range.End).Copy
    Wb.Range("A1").Select
    ActiveSheet.Paste
    inv.Close Savechanges:=False
    test.Close Savechanges:=True
    objWord.ActiveDocument.Close Savechanges:=wdDoNotSaveChange
    objWord.Quit
    Set objWord = Nothing
    Set objDoc = Nothing
    End Sub

您为该错误指示的行似乎正常(只要安装了长字,我确定是这样)。

...Set objWord.Visible = True..行是不好的: ...Set objWord.Visible = True.. ,当然,此行将产生错误原因,该错误原因只是要设置的属性,而不是对象。 那应该只是一个: objWord.Visible = True 希望这可以帮助。 KR。

请检查以下链接以跟踪您的错误。

Microsoft自动化错误帮助

正确处理任何单词实例,您可以使用辅助函数

Function GetWord(objWord As Object) As Boolean
    On Error Resume Next
    Set objWord = GetObject(, "Word.Application") ' try getting an already running instance of Word
    If objWord Is Nothing Then Set objWord = CreateObject("Word.Application")  ' if no running instance of Word then try setting a new one

    GetWord = Not objWord Is Nothing ' return the function result

    If Not GetWord Then MsgBox "Couldn't get Word", vbCritical ' inform the user that something went wrong

因此您的宏可以如下利用它

Sub Word()
    Dim objWord As Object

    If Not GetWord(objWord) Then Exit Sub

    objWord.Visible = True

    ... rest of your code
    End Function

在尝试此解决方案之前,您应该关闭excel实例并运行新的Excel表单草稿,以免遭受先前尝试散布的任何残留单词实例的困扰

如果所有这些都不能解决问题,那么您必须更深入地检查...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM