你所得到的錯誤的原因是你沒有你的文檔中"Nummeriertes Element"
參考或許OR,更可能的是,你有你的文檔中295 "Nummeriertes Element"
。當它試圖插入對"Nummeriertes Element"(296)
的引用時,它會炸彈。通過一對夫婦相當快地砰的一聲轟炸可能只是Word的一個問題(我已經看到一些奇怪的事情發生在Word和.docm損壞)。不幸的是,你會得到那個可怕的錯誤,這意味着什麼都沒有。
Option Explicit
Sub Test()
Dim allHeadlines As Variant
Dim doc As Document
Dim i As Integer
allHeadlines = ActiveDocument.GetCrossReferenceItems(wdRefTypeHeading) ' Gets all headlines
For i = 1 To UBound(allHeadlines)
Selection.InsertCrossReference ReferenceType:=wdRefTypeHeading, _
ReferenceKind:=wdNumberRelativeContext, ReferenceItem:=i, _
InsertAsHyperlink:=True, IncludePosition:=False, SeparateNumbers:=False, _
SeparatorString:=" "
Next i
End Sub
這將交叉引用您的標題。當你指定你的ReferenceType
是"Nummeriertes Element"
在後端(我假設),它正在做GetCrossReferenceItems(wdRefTypeNumberedItem)
,然後你指定你想通過序號wdNumberRelativeContext
得到它,並試圖抓取GetCrossReferenceItems(wdRefTypeNumberedItem)(296)
,這是不存在的。
但是當你改變你的ReferenceType
到wdRefTypeHeading
將交叉參考的序號標題本身,而不是編號列表項。你可以下降然後str(i)
只是i
希望它有幫助。
當然,項目#296可能有問題。添加或刪除段落時,交叉引用會變得不適。嘗試讀取損壞的參考可能會返回您遇到的錯誤。嘗試確定有問題的參考,並確定它是否有問題。 – Variatus
我檢查了這個。如果我刪除了項目#296或從另一個項目開始,而不是從第一個項目開始,它會在另一個點崩潰。似乎與該項目本身無關。 – Nebr