在Word 2003中的表单检查上生成一个空白表

时间:2009-12-15 16:14:20

标签: vba ms-word ms-office word-vba

在Word 2003中,我正在尝试创建一个表单,如果填写表单的人需要它们并单击一个复选框(如果其他表单击此处),则可以生成其他条目。我已经尝试了一个表单字段,在输入时运行宏,但似乎没有工作。是否有更优雅的方法来制作可以在用户需要的Word中添加表格的表单?

基本上是这样的(作为一个不相关但功能上准确的例子):

http://pixiurl.com//image/5o2r751t%5FExample.png(抱歉,我无法发布图片)

单击“单击此处”时,会生成另一个完全相同的内容。

此外,我需要确保新表上的字段保持空白,即使它们已填入原始字段,因此我无法使用复制和粘贴方法。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

创建一个包含一些文本的文档和一个来自“Control Toolbox”的复选框;在要插入表格的位置添加一个名为“Here”的书签;添加更多文字。

输入控制工具箱的以下代码:

Private Sub CheckBox1_Click()
    If Me.CheckBox1 Then
        Selection.GoTo What:=wdGoToBookmark, Name:="Here"
        ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
        3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed
        With Selection.Tables(1)
            If .Style <> "Table Grid" Then
                .Style = "Table Grid"
            End If
            .ApplyStyleHeadingRows = True
            .ApplyStyleLastRow = True
            .ApplyStyleFirstColumn = True
            .ApplyStyleLastColumn = True
        End With
    Else
        Selection.GoTo What:=wdGoToBookmark, Name:="Here"
        With Selection.Tables(1)
            .Delete
        End With
    End If
End Sub

如果表单被锁定,您可能需要通过Unprotect / Protect语句包围IF-ELSE-ENDIF