我正在制作插件。必须可以插入表格。应该可以指定尺寸和位置。当我插入第一个表时它工作正常,但如果我插入另一个表,则第一个表被删除并插入新表。我仍然是vb.net的新手,所以代码可能不是最好的。
With Globals.WordAddIn.ActiveDocument.Tables.Add(Globals.WordAddIn.ActiveDocument.Range, 1, 1)
.TopPadding = 0
.BottomPadding = 0
.LeftPadding = 0
.RightPadding = 0
.Rows.WrapAroundText = True
.Rows.RelativeHorizontalPosition = Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionPage
.Rows.RelativeVerticalPosition = Word.WdRelativeVerticalPosition.wdRelativeVerticalPositionPage
.Rows.HorizontalPosition = dobHorizontal
.Rows.VerticalPosition = dobVertical
.Rows.Height = dobHeight
.Columns.Width = dobWidth
End With
答案 0 :(得分:3)
假设你正在使用上面的代码添加两个表(可能在一个循环中),我认为问题是你用第二个表覆盖第一个表,因为你使用相同的范围。
Tables.Add的文档说:
您希望表格显示的范围。该表取代了 范围,如果范围没有折叠。
如果您更改代码的第一行:
With Globals.WordAddIn.ActiveDocument.Tables.Add(Globals.WordAddIn.ActiveDocument.Range, 1, 1)
类似
dim range = Globals.WordAddIn.ActiveDocument.Range;
With Globals.WordAddIn.ActiveDocument.Tables.Add(range, 1, 1)
然后在你添加第一张表后,你会这样做:
range.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
它应该允许你添加两个表。
但是,如果你一个接一个地添加两个表,我认为Word将它们组合成一个表,所以你需要在它们之间添加一些空格,例如通过使用类似的东西:
range.InsertParagraphAfter();
range.Collapse(Word.WdCollapseDirection.wdCollapseEnd); ' need to collapse again to avoid overwriting
我认为它可能有用。