使用VBA将表定位到Word文档中的特定位置

时间:2011-02-04 16:27:08

标签: vba ms-word word-vba

我编写了一个宏来允许用户从组合框中选择办公室分支,现在我想将相关地址插入到特定位置的word文档中。我使用表来保存地址,但是当创建表时,它会在光标正好位于页面的任何位置创建。

我似乎无法找到一种方法来告诉桌子准确定位(x,y)我需要它出现的位置。由于文档中没有其他内容,只有文本,因此无需参考。

如果可能的话,我也试图远离使用Active X控件。

3 个答案:

答案 0 :(得分:6)

此代码将在第二段和第三段之间添加三列一行表。

Sub InsertTable()

    Dim tbl As Table
    Dim pg As Paragraph

    With ThisDocument
        'Add a new paragraph that the table will replace
        Set pg = .Paragraphs.Add(.Paragraphs(3).Range)
        'Add a table in place of the new paragraph
        Set tbl = .Tables.Add(pg.Range, 1, 3)
    End With

    tbl.Columns(1).Cells(1).Range.Text = "123 Main St"
    tbl.Columns(2).Cells(1).Range.Text = "City"
    tbl.Columns(3).Cells(1).Range.Text = "State"
    tbl.Rows.LeftIndent = 41

End Sub

答案 1 :(得分:1)

您可以使用它来水平和垂直定位表

tbl.Rows.HorizontalPosition = 150 'In points
tbl.Rows.VerticalPosition = 200

希望有所帮助。

答案 2 :(得分:0)

我在使用Dick Kusleika's answer中的带有with语句的代码时遇到了麻烦,所以我想在没有with语句的情况下共享我的版本,因为像我这样的人更容易理解:

Sub InsertTable()

Dim tbl As Table
Dim pg As Paragraph

'Add a new paragraph that the table will replace
Set pg = ThisDocument.Paragraphs.Add(ThisDocument.Paragraphs(3).Range)
'Add a table in place of the new paragraph
Set tbl = ThisDocument.Tables.Add(pg.Range, 1, 3)

tbl.Columns(1).Cells(1).Range.Text = "123 Main St"
tbl.Columns(2).Cells(1).Range.Text = "City"
tbl.Columns(3).Cells(1).Range.Text = "State"
tbl.Rows.LeftIndent = 41

End Sub