vba - 用于取消隐藏书签文本的 VBA 代码不起作用
问题描述
我创建了一个 ActiveX 下拉列表,每个选项都链接到文本的书签。在 ActiveX 控件下有隐藏的书签 (R1
和R2
)。
当我按下btnselect
按钮时,除选定的书签外,所有其他书签都被删除,选定的书签变得可见。在书签中R2
我有一个MacroButton
用于显示/隐藏另一个文本 ( CollapseMentiuniReclamant
)。单击按钮时,它会运行Expand1
sub 或Collapse1
sub,但书签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
出现?
解决方案
它没有显示,因为您要隐藏/取消隐藏的内容不在书签范围内。无论如何,您应该插入/删除内容,而不是简单地切换它的隐藏属性。隐藏某些内容并不能保证它不会被看到或打印(即使没有看到),因为这些设置取决于最终用户如何配置 Word。
推荐阅读
- sparql - Yasgui SPARQL 查询搜索 FOAF 名称不起作用
- sql - PostgresSQL 10.6 - 函数子字符串和 regexp_matches 函数不存在
- laravel - Guard.php 第 453 行中的 ErrorException
- ruby-on-rails - 如何为控制器创建 routes.rb 条目?
- ruby - Mongoid 和 Rspec 错误 Mongo::Error::NoServerAvailable:
- c++ - 赋值的计算序列,对于基本类型的变量,右操作数抛出异常
- excel - 基于过滤器范围的特殊粘贴错误 1004
- operating-system - 操作系统中逻辑地址的用途是什么?为什么生成它们
- php - 如何修复 Laravel Nova 中的“未定义属性:Illuminate\View\Factory::$iteration”错误
- ionic-framework - 如何从谷歌地图中删除标记集群(Ionic4)