我們有一個多年來一直運行良好的 Word 模板,但最近用戶遇到了一個錯誤,導致他們無法正確運行該模板。該模板仍然適用于其他所有人。報告的錯誤訊息是:
運行時錯誤“5941”:集合的請求成員不存在。
在用戶機器上除錯代碼后,我們發現錯誤是ActiveDocument.Sections(sectionNo)在如下VBA中觸發的:
Dim sectionNo As Long
Selection.GoTo what:=wdGoToBookmark, Name:=myBookmarkName
sectionNo = Selection.Information(wdActiveEndSectionNumber)
ActiveDocument.Sections(sectionNo).Range.Delete
我們確認字串 inmyBookmarkName指向一個有效的書簽,但我們發現Selection.Information(wdActiveEndSectionNumber)回傳了-1. 所以對于這個特定的用戶,而不是其他用戶,書簽不包含在一個部分中。
什么可能導致文本僅存在于一個特定用戶的 Word 檔案的所有部分之外?
uj5u.com熱心網友回復:
在Web Layout功能區的視圖選項卡中選擇 時,檔案不再包含部分。因此,只有Web Layout選中的用戶才會遇到錯誤。
要解決 VBA 中的問題,請先將視圖型別更改為Print View在處理檔案之前將部分強制回傳到檔案中。然后,在處理之后,將視圖型別更改回來,以便用戶仍然可以選擇他們喜歡的視圖型別。例如:
Dim userViewType As WdViewType
userViewType = ActiveWindow.View.Type
ActiveWindow.View.Type = wdPrintView
'code to process document goes here
ActiveWindow.View.Type = userViewType
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/527815.html
標籤:vbams-word
下一篇:MySQL
