2016-01-19 77 views
0

我一直在玩這個,但我不能得到它的工作。我在Microsoft Word中有一個表,在這個表中是我的C#程序選擇的一個mailmerge字段。刪除錶行互操作字

我想刪除包含該字段的行。我嘗試這樣做:

app.Selection.SelectRow(); 
app.Selection.Delete(); 

app是一個實例Microsoft.Office.Interop.Word.Application

正如所寫,此代碼刪除表格內的文本,但在後面留下空的表格行。我如何刪除表格行本身?

回答

0

當你有一個範圍或選擇,在大多數情況下,你可以解決這樣的「含」水平:

app.Selection.Rows[1] 

(因爲我是在移動設備上我無法檢查您是否可直接使用.Delete()或者是否需要.Range.Delete())

同樣,Selection.Tables [1]會圍繞選區選取表格並選擇Selection.Paragraphs [1]。

請注意,除非您想要執行的操作不會以其他方式工作,否則應該使用Range對象。屏幕閃爍少,執行速度快,代碼更易預測。

+0

這是完美的!後續問題:如果我不確定它是否已經存在,是否有方法可以訪問選擇下面的行?即我想選擇下面的行或添加一行。 (也許一廂情願) –

+0

當然。一些東西沿着:app.Selection.Tables [1] .Rows [app.Selection.Rows [1] .Index + 1] .Select();雖然當事情達到這種複雜程度時,我傾向於爲表格,行等創建對象。在Office對象模型中,點符號是1)效率不高,並且2)在.NET Framework環境中將傾向於使用指針來創建COM對象,這些指針可能會導致問題,因爲您無法正確釋放它們。 –