[英]VBA in Word: If then to toggle bookmarks hidden/unhidden
這段 VBA 代碼似乎應該可以在 Word 中的書簽上切換 hidden = True/False,但事實並非如此。
Private Sub Instructions_Click()
If ActiveDocument.Bookmarks("InstText").Range.Font.Hidden = True Then
Bookmarks("InstText").Range.Font.Hidden = False
Else
Bookmarks("InstText").Range.Font.Hidden = True
End If
End Sub
下一個有效(如果您單擊“ Instructions
”按鈕,相應的書簽文本將不隱藏)
Private Sub Instructions_Click()
ActiveDocument.Bookmarks("InstText").Range.Font.Hidden = False
End Sub
我看到的另一個想法是:
Private Sub Instructions_Click()
ActiveDocument.Bookmarks("InstText").Range.Font.Hidden = Not ActiveDocument.Bookmarks("InstText").Range.Font.Hidden
基本上應該將其翻轉為不是的任何東西。 但這對我不起作用。
誰能告訴我第一個有什么問題? 我猜隱藏屬性出於某種原因不能用作條件,但是——為什么不呢? 或者是別的什么? 最好的方法是什么?
將此代碼添加到 Normal > NewMacros:
Sub Toggle_Bookmarks()
ActiveWindow.View.ShowBookmarks = Not ActiveWindow.View.ShowBookmarks
End Sub
現在您在快速訪問工具欄中有一個切換按鈕,可以單擊以切換書簽。
這並沒有回答問題,但對於將他的問題用於他們自己的問題的人來說,這是一些見解。
出於某種原因,if 語句不計算 Range.Font.Hidden = False。 但是,如果您使用 .Range.Font.Hidden = True,它會進行計算。
所以你必須使用 Else: 來解決它。 有點雙重消極的情況。
'SF1
如果 ActiveDocument.Bookmarks("SF1").Range.Font.Hidden = True 那么
否則:ActiveDocument.Bookmarks("SF1X").Range.Font.Hidden = False
結束如果``
在我自己的 Word 加載項中,我顯示了找到的所有書簽的列表。 用戶單擊書簽(或多個書簽)並單擊切換按鈕以切換可見性。
我的例程遍歷所有選定的書簽並使用這兩行代碼:
.Bookmarks(intHideShowBookmark).Select
.Bookmarks(intHideShowBookmark).Range.Font.Hidden = Not _ .Bookmarks(intHideShowBookmark).Range.Font.Hidden
這是使用您提到的第三個選項。 希望有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.