2015-04-24 62 views
3

我正在爲單詞添加插件。必須可以插入表格。應該可以指定尺寸和位置。當我插入第一個表時,它工作正常,但是如果我插入另一個表,那麼將刪除第一個表並插入新表。我對vb.net仍然很陌生,所以代碼可能不是最好的。通過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 

回答

2

假設你使用上面的代碼(可能是在一個循環中)加入兩個表我認爲這個問題是,你重寫第一表與第二個,因爲您使用相同的範圍內。

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); 

它應該讓你添加兩個表。

但是,如果之後相互補充的兩個表我想字它們合併到一個表,所以你需要使用像添加一些空間之間,例如:

range.InsertParagraphAfter(); 
range.Collapse(Word.WdCollapseDirection.wdCollapseEnd); ' need to collapse again to avoid overwriting 

我想它可能工作。

相關問題