我有一个大约200页的文档,基本上是特定软件的测试程序列表。现在这个文档中有一些与软件的不同版本相关的部分,这些部分是混合在一起的,所以它们的格式不是很好。我想要做的是能够隐藏测试不同版本时不需要的文档部分。我知道MS word有一个字体选项来隐藏文本,但我希望能够设置一个按钮/超文本链接/宏,可以轻松隐藏不需要的部分。这有可能,我该怎么做?我已经开始尝试使用VBA脚本来设计我自己的宏,但是只找到了一种方法来隐藏每个快捷键命中的一个部分。有没有办法做到这一点所以所有部件同时受到影响?
编辑:
文档的组织方式如下
Version 1
Test Option button
/
Version 2
Test Option button
Check that Sample button is disabled
/
Version 1
Test Save button
/
Version 3
Test Save to USB button
/
因为你可以看到它完全没有组织,我目前对一个宏的代码实际上不起作用,因为我指定它选择整个文档而不是在两点之间进行选择。
Sub TextSelectTest()
'
' TextSelectTest Macro
' Base Test
'
With Selection.Find
.Text = "Version1"
.Forward = False
.MatchWildcards = False
.Wrap = wdFindStop
.Execute
End With
Selection.Extend
With Selection.Find
.Text = "/"
.Forward = True
.Execute
.Text = ""
End With
Selection.Extend
With Selection.Font
.Hidden = True
End With
End Sub
答案 0 :(得分:1)
我认为hiding
字体不是最专业的解决方案,因为结果仅对打印可见。但在这种情况下,这可能是最容易的,特别是你提出的建议。
第一步:在文档中设置部分。这很容易,应该在Word应用程序中完成。您需要插入与需要管理的文档的许多部分一样多的部分分隔标记。我们需要知道哪个部分应该/不应该成为每个手册的一部分,但我稍后会再回过头来看。
第二步:您将需要以下子程序,它将“隐藏”所有部分,而不是显示适当的部分:
Sub HideUnhide_Document_Section(secIndex As Variant)
Dim Doc As Document
Set Doc = ActiveDocument
Dim secDoc As Variant
'to hide all section first, by iteration
For Each secDoc In Doc.Sections
secDoc.Range.Font.Hidden = True
Next secDoc
'alternatively we could hide whole content without iteration:
'secDoc.Content.Font.Hidden = True
'to un-hide chosen sections
For Each secDoc In secIndex
Doc.Sections(secDoc).Range.Font.Hidden = False
Next secDoc
End Sub
为了管理您的隐藏过程,我建议使用以下代码:
Sub Call_Hide()
Dim arrVersion1 As Variant
'put all sections for appropriate version
arrVersion1 = Array(1, 3)
'to unhide
HideUnhide_Document_Section arrVersion1
End Sub
您可以为每个版本准备类似的单独子例程,也可以参数化该版本。第二种情况是,每个版本的手册都必须有单独的数组(arrVarsionX)。