2017-02-13 47 views
0

我已經編寫了一個腳本來搜索並返回在Word文件中找到的特定值。防爆。該腳本正在使用「([)(*)(])」參數查找Word文檔(使用Interop.Word)中的所有值。這工作正常。VBnet檢查發現的值是否是Word表中的一部分

我的問題是確定每個值是否是Word文件中表的一部分。如果該值存在於Word中的表中,則其目的是刪除找到值的特定行。

是否有可能檢查發現的值是否是Word表中的一部分?

謝謝!

回答

0

您可以遍歷表格,將它們轉換爲文本並搜索您的文本。

考慮到docWord.Document您正在自動化。

For each wtable as Word.Table in doc.Tables 

Dim str as string 

Str = wtable.ConvertToText(Separator:=vbTab, _ 
    NestedTables:=False).Text 

If str.Contains("search text") 
    Msgbox("found") 
End if 

Next 
0

你應該沒有問題,此VBA代碼轉換爲VB.NET:

Sub FindInTables() 
    Dim oDocument As Document 
    Dim oRange As range 

    Set oDocument = Application.ActiveDocument 
    Set oRange = oDocument.range 

    With oRange.find 
     Do While .Execute(FindText:="bla", Forward:=True, MatchWildcards:=True) 

      If oRange.Tables.Count > 0 Then 
       oRange.Rows.Delete 
      End If 

      oRange.Collapse wdCollapseEnd 
     Loop 
    End With 
End Sub 

基本上,您使用的是要通過搜索範圍查找對象,然後你檢查發現的表格數量確定它是否在表格中。如果是這樣,你可以調用.Delete找到範圍的.Rows集合。