用于取消隐藏书签文本的VBA代码无效

用于取消隐藏书签文本的VBA代码无效,vba,ms-word,Vba,Ms Word,我创建了一个ActiveX下拉列表,每个选项都链接到文本的书签。ActiveX控件下有隐藏的书签(R1和R2) 当我点击b选择按钮时,除所选书签外的所有其他书签都将被删除,所选书签将可见。 在书签R2 我有一个宏按钮,用于显示/隐藏另一个文本(CollapseMentiuniReclamant)。单击按钮时,它会运行Expand1sub或Collapse1sub,但书签CollapseMentiuniReclamant不会显示 我已经尽可能地简化了文档和代码。链接到文档- vba代码是: Pri

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

当我点击
b选择
按钮时,除所选书签外的所有其他书签都将被删除,所选书签将可见。 在书签
R2

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

我已经尽可能地简化了文档和代码。链接到文档-

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”不显示?

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

实际上,单击文档末尾的提交按钮后,所有隐藏的文本都会被删除。我选择只在编辑时隐藏它,以使其可逆。我不明白你说的不在范围内。你的“Selection.range”引用不会将内容插入书签;充其量,他们会将其插入到所选内容的后面或位置。如果所选内容是书签,则内容将插入书签后。“selection.range”仅用于为按钮提供两种状态。单击该按钮,它将被选中并替换为“自动图文集”中的另一个按钮。我想要从隐藏状态切换的书签位于选择之后。出于测试目的,我只留下了带有一行VBA的
Expand1
宏按钮:
书签(“CollapseMentiuniReclamant”).Range.Font.Hidden=False
,它仍然没有显示。在文档中,按F5(转到)并选择CollapseMentiuniReclamant书签。选择什么?隐藏文本被选择。在我的例子中,它只是一个单词“list”,位于所有可见文本之后。在堆栈溢出时,与问题相关的所有信息都需要在问题中-不需要指向外部源的链接。这是一个问答网站,它的内容应该对其他人有帮助,而不仅仅是问题的原始人。理解文档是如何构建的是不可能理解这个问题的,我们需要能够复制它。请在问题中提供一份完整的说明,其中仅包含重现问题所需的信息,以及对代码当前工作方式和预期/预期结果的准确描述。