VBA 创建编号列表时访问 Word 错误
VBA Access to Word error when creating numbered list
我有一个用于创建 Word 文档的 Access 数据库。我正在使用 Office 2016。当我 运行 代码时,我要么得到
Error 462 "Remote server machine does not exist or is unavailable"
或
Error -2147023170 "Error: Automation error, The remote procedure call
failed"
Word 关闭。
On Error GoTo Err_CMD_Test
'Open Word document
Set GBL_objWord = CreateObject("Word.Application")
GBL_objWord.Visible = True
GBL_objWord.Activate
Set GBL_objDoc = GBL_objWord.Documents.Add
GBL_objDoc.Activate
'Traitement
GBL_objWord.Selection.TypeText Text:="List of something :"
GBL_objWord.Selection.TypeParagraph
GBL_objWord.Selection.TypeText Text:="Number one"
GBL_objWord.Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries(2).ListTemplates(1), ContinuePreviousList:=True, ApplyTo:=0, DefaultListBehavior:=2
GBL_objWord.Selection.TypeParagraph
GBL_objWord.Selection.TypeText Text:="Number two"
GBL_objWord.Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:=ListGalleries(wdNumberGallery).ListTemplates(1), ContinuePreviousList:=False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:=wdWord10ListBehavior
Exit_CMD_Test:
Exit Sub
Err_CMD_Test:
Select Case Err.Number
Case Else
MsgBox "Erreur : " & Err.Description & vbCrLf & _
"Numéro : " & Err.Number & vbCrLf & _
"Procédure : CMD_Test", vbCritical, ""
Resume Next
End Select
代码中断于
GBL_objWord.Selection.Range.ListFormat.ApplyListTemplate _
ListTemplate:=ListGalleries(2).ListTemplates(1), _
ContinuePreviousList:=True, ApplyTo:=0, DefaultListBehavior:=2
以及
GBL_objWord.Selection.Range.ListFormat.ApplyListTemplateWithLevel _
ListTemplate:=ListGalleries(wdNumberGallery).ListTemplates(1), _
ContinuePreviousList:=False, ApplyTo:=wdListApplyToWholeList, _
DefaultListBehavior:=wdWord10ListBehavior**"
我使用方法 ApplyListTemplate
和 ApplyListTemplateWithLevel
只是为了尝试两者,结果是一样的:一个错误。在第一个中,我更改了变量 wdNumberGallery
、wdListApplyToWholeList
、wdWord10ListBehavior
以及它们在 MSDN 网站上可用的枚举值,以试图查明错误。
很遗憾,我无法完成这项任务。我正在寻找的是具有以下文本的 Word 文档:
某物清单:
第一名
二号
...
谢谢大家的帮助
问题来自 Access VBA 在使用后期绑定时无法识别 ListGalleries
。如果 Word.Application 对象完全限定,代码对我有用:
Set GBL_objWord = CreateObject("Word.Application")
GBL_objWord.Visible = True
GBL_objWord.Activate
Set GBL_objDoc = GBL_objWord.Documents.Add
GBL_objDoc.Activate
'Traitement
GBL_objWord.Selection.TypeText Text:="List of something :"
GBL_objWord.Selection.TypeParagraph
GBL_objWord.Selection.TypeText Text:="Number one"
GBL_objWord.Selection.Range.ListFormat.ApplyListTemplate _
ListTemplate:=GBL_objWord.ListGalleries(2).ListTemplates(1), _
ContinuePreviousList:=True, ApplyTo:=0, DefaultListBehavior:=2
GBL_objWord.Selection.TypeParagraph
GBL_objWord.Selection.TypeText Text:="Number two"
我做了一些研究,下面是我的发现。
首先,我忘了把变量声明放在第一个 post 中。这是我错过的:
Option explicit
Public GBL_objWord As Object
Public GBL_objDoc As Object
此外,我没有提到在 Tools/References 中选择了 Microsoft Word 16.0 对象库等。
接下来,我了解了早期绑定和后期绑定之间的区别。我的变量应该是:
Public GBL_objWord As Word.Application
Public GBL_objDoc As Word.Document
此更改没有纠正错误,但是当我 运行 非常长的程序,结果是一个 7 页的 Word 文档时,这个过程似乎加快了很多。
既然我可以使用所有 Word 功能,我尝试了
GBL_objWord.Selection.Range.ListFormat.ApplyNumberDefault
而且效果很好!!!
即使您的 none 回答是好的,我也要感谢你们的帮助和指导,因为这些回答使我走上了正确的轨道。
谢谢,
此致
我有一个用于创建 Word 文档的 Access 数据库。我正在使用 Office 2016。当我 运行 代码时,我要么得到
Error 462 "Remote server machine does not exist or is unavailable"
或
Error -2147023170 "Error: Automation error, The remote procedure call failed"
Word 关闭。
On Error GoTo Err_CMD_Test
'Open Word document
Set GBL_objWord = CreateObject("Word.Application")
GBL_objWord.Visible = True
GBL_objWord.Activate
Set GBL_objDoc = GBL_objWord.Documents.Add
GBL_objDoc.Activate
'Traitement
GBL_objWord.Selection.TypeText Text:="List of something :"
GBL_objWord.Selection.TypeParagraph
GBL_objWord.Selection.TypeText Text:="Number one"
GBL_objWord.Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries(2).ListTemplates(1), ContinuePreviousList:=True, ApplyTo:=0, DefaultListBehavior:=2
GBL_objWord.Selection.TypeParagraph
GBL_objWord.Selection.TypeText Text:="Number two"
GBL_objWord.Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:=ListGalleries(wdNumberGallery).ListTemplates(1), ContinuePreviousList:=False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:=wdWord10ListBehavior
Exit_CMD_Test:
Exit Sub
Err_CMD_Test:
Select Case Err.Number
Case Else
MsgBox "Erreur : " & Err.Description & vbCrLf & _
"Numéro : " & Err.Number & vbCrLf & _
"Procédure : CMD_Test", vbCritical, ""
Resume Next
End Select
代码中断于
GBL_objWord.Selection.Range.ListFormat.ApplyListTemplate _
ListTemplate:=ListGalleries(2).ListTemplates(1), _
ContinuePreviousList:=True, ApplyTo:=0, DefaultListBehavior:=2
以及
GBL_objWord.Selection.Range.ListFormat.ApplyListTemplateWithLevel _
ListTemplate:=ListGalleries(wdNumberGallery).ListTemplates(1), _
ContinuePreviousList:=False, ApplyTo:=wdListApplyToWholeList, _
DefaultListBehavior:=wdWord10ListBehavior**"
我使用方法 ApplyListTemplate
和 ApplyListTemplateWithLevel
只是为了尝试两者,结果是一样的:一个错误。在第一个中,我更改了变量 wdNumberGallery
、wdListApplyToWholeList
、wdWord10ListBehavior
以及它们在 MSDN 网站上可用的枚举值,以试图查明错误。
很遗憾,我无法完成这项任务。我正在寻找的是具有以下文本的 Word 文档:
某物清单:
第一名
二号
...
谢谢大家的帮助
问题来自 Access VBA 在使用后期绑定时无法识别 ListGalleries
。如果 Word.Application 对象完全限定,代码对我有用:
Set GBL_objWord = CreateObject("Word.Application")
GBL_objWord.Visible = True
GBL_objWord.Activate
Set GBL_objDoc = GBL_objWord.Documents.Add
GBL_objDoc.Activate
'Traitement
GBL_objWord.Selection.TypeText Text:="List of something :"
GBL_objWord.Selection.TypeParagraph
GBL_objWord.Selection.TypeText Text:="Number one"
GBL_objWord.Selection.Range.ListFormat.ApplyListTemplate _
ListTemplate:=GBL_objWord.ListGalleries(2).ListTemplates(1), _
ContinuePreviousList:=True, ApplyTo:=0, DefaultListBehavior:=2
GBL_objWord.Selection.TypeParagraph
GBL_objWord.Selection.TypeText Text:="Number two"
我做了一些研究,下面是我的发现。
首先,我忘了把变量声明放在第一个 post 中。这是我错过的:
Option explicit
Public GBL_objWord As Object
Public GBL_objDoc As Object
此外,我没有提到在 Tools/References 中选择了 Microsoft Word 16.0 对象库等。
接下来,我了解了早期绑定和后期绑定之间的区别。我的变量应该是:
Public GBL_objWord As Word.Application
Public GBL_objDoc As Word.Document
此更改没有纠正错误,但是当我 运行 非常长的程序,结果是一个 7 页的 Word 文档时,这个过程似乎加快了很多。
既然我可以使用所有 Word 功能,我尝试了
GBL_objWord.Selection.Range.ListFormat.ApplyNumberDefault
而且效果很好!!!
即使您的 none 回答是好的,我也要感谢你们的帮助和指导,因为这些回答使我走上了正确的轨道。
谢谢,
此致