本文引自于:http://social.technet.microsoft.com/Forums/zh-CN/BIDA/thread/020efc0f-5104-4a58-925b-ca8cd559932d
前言:在日常工作中,我们有时会需要设计一些模板文档分发给用户,让用户填写部分内容后将文档返还。例如,在某些模板中,我们希望某些文本内容能够针对不同的用户分别显示不同的内容,本文将详细讲述如何通过两种不同的方法来实现这一目的
.
方法一 : 在控制下拉菜单时,”隐藏”表格中的特定行(列),从而使文档仅显示与下拉菜单中的当前选择项相关的内容 (此方法可将文档单独分布,不需共享的网络环境)
.
- 步骤1. 打开Word, 将新建的文档另存为"启用宏的Word文档(*.docm)";
.
. - 步骤2. 从"开发工具"中的"控件"功能组中点击"旧式窗体"按钮,并在弹出的下拉菜单中的"ActiveX 控件"组中选择"组合框(ActiveX控件)"
.
. - 步骤3. 在文档的任意空白处插入一个表格。为了便于演示,我们创建了一个规格为1x3的表格;
.
. - 步骤4. 在各行插入任意文字,用于标识该行是否被隐藏. 例如在第一行输入Row_A, 在第二行输入Row_B, 在第三行输入Row_C;
.
. - 步骤5. 对应的,我们在组合框中创建3个可选择项,依次命名为”选项_A”, ”选项_B”和 ”选项_C”, (在这里我们通过vba来添加所需项,代码提供在下文中)
. - 步骤6. 在Word中按下组合键 “Alt+F11” 打开VBA编辑器,将下列代码范例复制并黏贴到ThisDocument中
.
Option Explicit Const OPA = "选项_A" Const OPB = "选项_B" Const OPC = "选项_C" Private Sub Document_Open() ComboBox1.List = Array(OPA, OPB, OPC) End Sub Private Sub ComboBox1_Change() If ComboBox1.Value = OPA Then With ActiveDocument.Tables(1).Rows(1) .HeightRule = wdRowHeightAuto .Borders(wdBorderBottom).LineStyle = wdLineStyleSingle .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle .Borders(wdBorderRight).LineStyle = wdLineStyleSingle End With With ActiveDocument.Tables(1).Rows(2)</