首页 > 解决方案 > 用于取消隐藏书签文本的 VBA 代码不起作用

问题描述

我创建了一个 ActiveX 下拉列表,每个选项都链接到文本的书签。在 ActiveX 控件下有隐藏的书签 (R1R2)。

当我按下btnselect按钮时,除选定的书签外,所有其他书签都被删除,选定的书签变得可见。在书签中R2

我有一个MacroButton用于显示/隐藏另一个文本 ( CollapseMentiuniReclamant)。单击按钮时,它会运行Expand1sub 或Collapse1sub,但书签CollapseMentiuniReclamant不会显示。

我已经尽可能地简化了文档和代码。链接到文档 - https://wetransfer.com/downloads/1caea3c5d3b05e226e8b8f6a29760ad220190522071742/15db59

vba代码是:

Private Sub btnselect_Click()
If ComboBox1.Value = "1" Then
Bookmarks("R1").Range.Font.Hidden = False
Bookmarks("R2").Range.Font.Hidden = False
Bookmarks("R2").Range.Delete
End If
If ComboBox1.Value = "2" Then
Bookmarks("R1").Range.Font.Hidden = False
Bookmarks("R1").Range.Delete
Bookmarks("R2").Range.Font.Hidden = False
Bookmarks("CollapseMentiuniReclamant").Range.Font.Hidden = True
End If
End Sub
Sub Expand1()
ActiveDocument.AttachedTemplate.BuildingBlockEntries("Collapse1").Insert _
Where:=Selection.Range
Bookmarks("CollapseMentiuniReclamant").Range.Font.Hidden = False
End Sub
Sub Collapse1()
ActiveDocument.AttachedTemplate.BuildingBlockEntries("Expand1").Insert _
Where:=Selection.Range
Bookmarks("CollapseMentiuniReclamant").Range.Font.Hidden = True
End Sub

更新:我已经简化了代码的最后一部分,问题仍然存在:

Sub Expand1()
Bookmarks("CollapseMentiuniReclamant").Range.Font.Hidden = False
End Sub

我什至完全删除了该按钮并从“查看宏”选项卡中运行了宏,但它不起作用。为什么不CollapseMentiuniReclamant出现?

标签: vbams-word

解决方案


它没有显示,因为您要隐藏/取消隐藏的内容不在书签范围内。无论如何,您应该插入/删除内容,而不是简单地切换它的隐藏属性。隐藏某些内容并不能保证它不会被看到或打印(即使没有看到),因为这些设置取决于最终用户如何配置 Word。


推荐阅读