簡體   English   中英

Word VBA 關閉前刪除隱藏書簽

[英]Word VBA delete hidden bookmarks before closing

我想設置一個 VBA,以便在文檔關閉之前刪除基於模板的任何文檔的隱藏書簽。 我們在我們的網站上發布文件。 它們以 Word 格式編寫,API 將它們轉換為 html。如果有隱藏書簽,它們將在網站上顯示為鏈接(隱藏書簽將轉換為 html 錨點)。 目前我們刪除了 API 之前的書簽手冊,但這很耗時(我們每年發布 1000 份文檔)並且無效(人們忘記了)。

我發現 VBA 可以刪除有效的隱藏書簽,並嘗試將 DocumentBeforeClose 添加為觸發器。 但它不起作用:

Private Sub DocumentBeforeClose(cancel As Boolean)

    Dim nBK As Long

    With ActiveDocument

        For nBK = .Bookmarks.Count To 1 Step -1

            If LCase(Left(.Bookmarks(nBK).Name, 3)) = "_hl" Then

                .Bookmarks(nBK).Delete

            End If

        Next nBK

    End With

    ActiveDocument.Save


End Sub

我瀏覽了 Visual Basic Window、Normal、Microsoft Word 對象、ThisDocument。

沒有任何反應,如果我關閉並重新打開文檔,隱藏的書簽仍然存在。

我認為你需要添加這一行:

.Bookmarks.ShowHidden = True

像這樣它應該工作:

Private Sub DocumentBeforeClose(cancel As Boolean)

Dim nBK As Long

With ActiveDocument

.Bookmarks.ShowHidden = True

    For nBK = .Bookmarks.Count To 1 Step -1

        If LCase(Left(.Bookmarks(nBK).Name, 3)) = "_hl" Then

            .Bookmarks(nBK).Delete

        End If

    Next nBK

End With

ActiveDocument.Save

End Sub

這已經解決了:

Sub AutoClose()

On Error Resume Next

Dim nBK As Long

With ActiveDocument

.bookmarks.ShowHidden = True

    For nBK = .bookmarks.Count To 1 Step -1

        If LCase(Left(.bookmarks(nBK).Name, 3)) = "_hl" Then

            .bookmarks(nBK).Delete

        End If

    Next nBK

End With

ActiveDocument.Save

End Sub

唯一的問題是它會在您打開文檔時嘗試運行並顯示一條錯誤消息,指出沒有活動文檔。 'On error resume next' 是停止該錯誤消息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM