我编写了一个脚本来搜索并返回Word文件中的特定值。防爆。该脚本正在查找Word文档中的所有值(使用Interop.Word),其参数为"([)(*)(])"。这很好用。
我的问题是确定找到的每个值是否是Word文件中表的一部分。如果值存在于Word中的表中,则目的是删除找到值的特定行。
是否可以检查找到的值是否是Word中表格的一部分?
谢谢!
答案 0 :(得分:0)
您可以循环表格,将其转换为文字并搜索文字。
考虑到 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
答案 1 :(得分: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
基本上,您在要搜索的范围内使用find对象,然后检查找到的范围中的表的数量,以确定它是否在表中。如果是这样,你可以在找到范围的.Rows集合上调用.Delete。