我正在使用复选框在Word 2013中创建合同规范页面,以便我的老板可以单击他想要包含在最终打印合同中的每个框,并隐藏他不需要的框。我是VBA的新手,但我知道我需要用它来实现这个目标。从搜索互联网我使用书签和下面的代码:
Private Sub CheckBox1_Click()
If CheckBox1.Value = False Then
ActiveDocument.Bookmarks("Work1").Range.Font.Hidden = True
Else
ActiveDocument.Bookmarks("Work1").Range.Font.Hidden = False
End If
End Sub
但是在我点击它们之前,这段代码似乎隐藏了复选框。我希望复选框在打印之前保持可见,以防我的老板需要进行更改。我也试过使用另一个代码,但它也没有按照我想要的方式工作:
Private Sub CheckBox1_Click()
If CheckBox1.Value = False Then
ActiveDocument.Bookmarks("Work1").Application.Options.PrintHiddenText = False
Else
ActiveDocument.Bookmarks("Work1").Application.Options.PrintHiddenText = True
End If
End Sub
我还想这样做,以便在未使用的复选框中没有间隙。任何帮助将不胜感激!!
答案 0 :(得分:0)
我会建议你的宏:
a)保存当前文档(如果需要,保存在临时文件夹中)
b)删除所有未选中的框
c)打印文件
d)关闭文件
e)打开保存在a)点的文件。
应该使用十几行代码。
答案 1 :(得分:0)
我昨天似乎过分复杂了这个问题。您唯一的问题是您的复选框与文本一起变得不可见。您只需确切地标记要隐藏/显示的文本,将复选框(由Word视为文本的一部分)留在书签之外。
您的代码可以正常运行,或者您可以将其替换为:
Private Sub CheckBox1_Click()
Bookmarks("Work1").Range.Font.Hidden = Not CheckBox1
End Sub
顺便说一句,如果你让Word显示段落标记(Ctrl + *),你将能够看到隐藏的文字。