使用VBA在MS Word中创建表

时间:2012-11-13 18:02:23

标签: vba ms-word word-vba

在MS Word中创建表的代码是什么?

我已经使用宏的记录功能来查看它是如何编写的,我不知道如何解释它。

并且在录制宏时是否可以绘制表格?它使“绘制表”功能变灰。

我需要制作一个在表格中包含一些合并单元格的表格 - 如果我可以使用宏绘制表格并使用宏进行记录会更容易,但似乎我不能这样做...

table

我使用绘制功能绘制了跟随表但我无法记录它。

HELP?

3 个答案:

答案 0 :(得分:8)

这应该让你开始。

Sub Tester()


    Dim x, w, c

    ThisDocument.Tables(1).Delete

    ThisDocument.Tables.Add Range:=Selection.Range, NumRows:=7, NumColumns:=1, _
                          DefaultTableBehavior:=wdWord9TableBehavior, _
                          AutoFitBehavior:=wdAutoFitFixed

    With ThisDocument.Tables(1)

        .Rows.Height = 70
        w = .Rows(1).Cells(1).Width

        .Rows(1).Cells(1).Split 1, 7
        .Rows(1).Cells(1).Width = w / 2
        For x = 2 To 7
            .Rows(1).Cells(x).Width = (w / 2) / 6
        Next x

        .Rows(5).Height = 15
        .Rows(7).Height = 15

        .Rows(7).Cells(1).Split 1, 7

        .Rows(6).Cells(1).Split 1, 4
        .Rows(6).Cells(2).Split 2, 1

        'Once you merge cells it gets difficult to use .Rows, but
        '  you can still address individual cells. Use the loop below to
        '  find out which one you need to operate on...
        x = 1
        For Each c In .Range.Cells
            c.Range.Text = x
            x = x + 1
        Next c

        .Range.Cells(16).Split 1, 4
        'you can figure out setting the exact required widths...
    End With
End Sub

答案 1 :(得分:3)

制作表格的基本命令是

ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=4, NumColumns:= 3

并拆分/合并单元格:

Selection.Cells.Split NumRows:=1, NumColumns:=2
Selection.Cells.Merge

答案 2 :(得分:0)

您可以创建表格,然后将其另存为自动文本(选择表格 - ALT + F3 - 自动文本的名称)。然后,当您需要文档中的表格时,只需键入您给出的名称,然后按F3。