我编写了一个宏来允许用户从组合框中选择办公室分支,现在我想将相关地址插入到特定位置的word文档中。我使用表来保存地址,但是当创建表时,它会在光标正好位于页面的任何位置创建。
我似乎无法找到一种方法来告诉桌子准确定位(x,y)我需要它出现的位置。由于文档中没有其他内容,只有文本,因此无需参考。
如果可能的话,我也试图远离使用Active X控件。
答案 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