0
我有一些VBA代碼遍歷文檔以從文檔中刪除表格。下面的代碼在VBA正常工作:遍歷Microsoft Word文檔來查找和替換表格
Set wrdDoc = ThisDocument
With wrdDoc
For Each tbl In wrdDoc.Tables
tbl.Select
Selection.Delete
Next tbl
End With
不幸的是,我不能輕易因爲有一個新的Range.Find方法翻譯這個代碼爲C#,大概。以下是我嘗試過的三件事,每件都失敗了。
第一次嘗試(VBA代碼重新寫):
foreach (var item in doc.Tables)
{
item.Delete; //NOPE! No "Delete" function.
}
我嘗試這樣做:
doc = app.Documents.Open(sourceFolderAndFile); //sourceFolderAndFile opens a standard word document.
var rng = doc.Tables;
foreach(var item in rng)
{
item.Delete; //NOPE! No "Delete" function.
}
我也試過這樣:
doc = app.Documents.Open(sourceFolderAndFile); //sourceFolderAndFile opens a standard word document.
var rng = doc.Tables;
Range.Find.Execute(... //NOPE! No Range.Find available for the table collection.
...
可能有人請幫助我瞭解如何使用C#和Word Interop(Word 2013和2016)遍歷文檔,查找表,然後按形成一個功能,就像選擇它,刪除它或替換它一樣?
謝謝!
也許你應該使用一個向後的循環?這是您通常要從集合中刪除項目時所要執行的操作。你爲什麼使用SetRange? – Jbjstam
據我所知,沒有必要做一個後向循環,因爲所有的表格都是從頭到尾找到的。至於SetRange,這是最好的方式(據我所知)選擇表格然後刪除它。如果你有更好的選擇,我都是耳朵:) – Bill