如何在打印

时间:2015-10-08 22:56:27

标签: ms-word word-vba

我正在使用复选框在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

我还想这样做,以便在未使用的复选框中没有间隙。任何帮助将不胜感激!!

2 个答案:

答案 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 + *),你将能够看到隐藏的文字。