我正在从Excel写入Word文档,如果宏第一次运行完成并且所有Word应用程序都关闭并且宏重新运行,我将收到462错误。我阅读了大量有关不合格引用的Microsoft信息。我无法弄清楚这一行会发生什么导致错误,所以我希望有人能够找到它。
声明
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim i As Integer
Dim titleCount As Long
Dim Count3, Count4, Count5, endCount3, endCount4, endCount5 As Long
Dim QLRVar As New Scripting.Dictionary
Dim IsOffice2013 As Boolean: IsOffice2013 = False
Dim IsOffice2010 As Boolean: IsOffice2010 = False
如何打开/调用Word文档
On Error Resume Next
Set wrdApp = GetObject(Class:="Word.Application")
On Error GoTo 0
If wrdApp Is Nothing Then
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Add
Else:
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Add
End If
带有错误的部分
With wrdApp.ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(1)
.NumberFormat = "%1. "
.TrailingCharacter = wdTrailingTab
.NumberStyle = wdListNumberStyleArabic
.NumberPosition = InchesToPoints(0)
.Alignment = wdListLevelAlignLeft
.TextPosition = InchesToPoints(0)
.TabPosition = wdUndefined
.ResetOnHigher = 0
.StartAt = 1
.LinkedStyle = "Heading 0"
End With
错误在.NumberPosition行上。
宏非常大,所以我发布了我认为相关的部分,但如果需要,我会添加更多。
答案 0 :(得分:0)
Microsoft表示您必须完全符合每个参考资格,请参阅: documentation
我已将这些引用添加为“Word”。在您的代码下面添加:
With wrdApp.ListGalleries(Word.wdOutlineNumberGallery).ListTemplates(1).ListLevels(1)
.NumberFormat = "%1. "
.TrailingCharacter = Word.wdTrailingTab
.NumberStyle = Word.wdListNumberStyleArabic
.NumberPosition = Word.InchesToPoints(0)
.Alignment = Word.wdListLevelAlignLeft
.TextPosition = Word.InchesToPoints(0)
.TabPosition = Word.wdUndefined
.ResetOnHigher = 0
.StartAt = 1
.LinkedStyle = "Heading 0"
End With
我不记得InchesToPoints()是否是Word函数,但我猜对了。我希望你明白这一点。
检查其余代码。任何非限定引用都可能触发此错误。检查每个引用的库(例如Outlook,Excel,ADODB等)
祝你好运。这个错误在大型代码块中是一个野兽。我不知道找到一个我总是想念的参考文献的方法。如果有人知道,请分享。
让我们都知道你是怎么做出来的。我们都需要分享哪些有效,哪些无效。