VBA Word - 保持表格不在文档之外

时间:2014-11-19 07:52:11

标签: vba word-vba

我有两个按钮,其中一个在word文档中创建一个表,另一个在表中添加一列。我的问题是,在我创建我的表并尝试向其添加列之后,表格会在文档之外生长,而不是在文档中填充列。

Sub CreateTable(columns As Long)
    Dim t As Table
    Set t = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=2, NumColumns:=columns, _
            DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed)
End Sub

Sub AddColumn()
    Selection.InsertColumnsRight
End Sub

创建表格时我是否遗漏了一些参数?或者我是否错误地添加了该列?

编辑: 忘记提到我记录了一个使用内置工具尝试同样事情的宏。而我得到的或多或少与我完成的一模一样。在创建表时使用Selection.InsertColumnsRight和相同的参数。

2 个答案:

答案 0 :(得分:0)

您正在将列添加到当前"选择"也就是说,如果您正常输入,光标图标基本上会闪烁等待输入。在这种情况下,它将位于您刚刚插入的表的右侧。

要解决此问题,我会保留对您的表格的引用并以此方式添加,或者通过执行ActiveDocument.Tables(1)

之类的操作来查找

看看for an example of how to add columns.

答案 1 :(得分:0)

最初创建表时,将自动调整设置为“固定”。如果您希望表格适合页面,则需要将其设置为“Window”。如果您最初不想设置它(可能并非所有表都添加了列),您可以在添加列后执行此操作。

Sub AddColumn()
Dim objTable As Table

    If Selection.Information(wdWithInTable) = True Then
        Set objTable = Selection.Tables(1)
        Selection.InsertColumnsRight
        objTable.AutoFitBehavior (wdAutoFitWindow)
    End If
End Sub

这也会在它做任何事之前检查选择是否实际在表中;否则你冒着抛出错误的风险。