我已經編寫了一個腳本來搜索並返回在Word文件中找到的特定值。防爆。該腳本正在使用「([)(*)(])」參數查找Word文檔(使用Interop.Word)中的所有值。這工作正常。VBnet檢查發現的值是否是Word表中的一部分
我的問題是確定每個值是否是Word文件中表的一部分。如果該值存在於Word中的表中,則其目的是刪除找到值的特定行。
是否有可能檢查發現的值是否是Word表中的一部分?
謝謝!
我已經編寫了一個腳本來搜索並返回在Word文件中找到的特定值。防爆。該腳本正在使用「([)(*)(])」參數查找Word文檔(使用Interop.Word)中的所有值。這工作正常。VBnet檢查發現的值是否是Word表中的一部分
我的問題是確定每個值是否是Word文件中表的一部分。如果該值存在於Word中的表中,則其目的是刪除找到值的特定行。
是否有可能檢查發現的值是否是Word表中的一部分?
謝謝!
您可以遍歷表格,將它們轉換爲文本並搜索您的文本。
考慮到doc是Word.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
你應該沒有問題,此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集合。