我有两个按钮,其中一个在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和相同的参数。
答案 0 :(得分:0)
您正在将列添加到当前"选择"也就是说,如果您正常输入,光标图标基本上会闪烁等待输入。在这种情况下,它将位于您刚刚插入的表的右侧。
要解决此问题,我会保留对您的表格的引用并以此方式添加,或者通过执行ActiveDocument.Tables(1)
答案 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
这也会在它做任何事之前检查选择是否实际在表中;否则你冒着抛出错误的风险。