[英]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.