簡體   English   中英

Word 中的 VBA:如果然后切換隱藏/未隱藏的書簽

[英]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
  1. 右鍵單擊 Microsoft Word 功能區
  2. 自定義快速訪問工具欄
  3. 左上方列表,從宏中選擇命令
  4. 選擇 Normal.Newmacros.Toggle_Bookmarks
  5. 點擊添加
  6. 單擊確定

現在您在快速訪問工具欄中有一個切換按鈕,可以單擊以切換書簽。

這並沒有回答問題,但對於將他的問題用於他們自己的問題的人來說,這是一些見解。

出於某種原因,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.

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