通过书签查找Word表:错误91 - 未设置对象变量或块变量

问题描述 投票:0回答:1

我在 Excel 中运行宏来打开指定的 Word 文档,通过其书签名称查找表格并添加几行。

有时会在代码的书签部分出现错误 91。

Dim wordApp As Word.Application
Dim fileName As String
Dim wordTable As Word.Table
Dim wordDoc As Word.Document
Dim numRows
Dim numCols
Dim excelTable As ListObject

fileName = "C:\Users\Smith\Documents\example.docx"
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = True
Set wordDoc = wordApp.Documents.Open(fileName)

'This is where the error comes:
Set wordTable = wordDoc.Bookmarks("tableA").Range.Tables(1)

wordTable.Borders.Enable = True

For i = 1 To numCols
    wordTable.Rows.Add
Next

如果我打开了一个 Word 文档(空白或不同的文档),代码运行正常。
如果没有打开 Word 应用程序/文档,则会出现错误 91。

excel vba ms-word
1个回答
0
投票

以下代码行包含多个属性和方法调用:

Set wordTable = wordDoc.Bookmarks("tableA").Range.Tables(1)

因此,我建议通过在单独的行中声明每个属性来打破属性调用链。因此,您将能够找到导致问题的属性或方法。

我还建议使用以下代码检查文档中是否存在此类书签:

If wordDoc.Bookmarks.Exists("temp") = True Then 
  ' your code here
End If
© www.soinside.com 2019 - 2024. All rights reserved.