2017-02-13 10 views
0

Я написал сценарий для поиска и возврата определенных значений, найденных в файле Word. Ex. Скрипт ищет все значения в документе Word (с Interop.Word) с параметрами «([) (*) (])». Это прекрасно работает.Проверка VBnet, если найденное значение является частью таблицы в Word

Моя проблема заключается в том, чтобы определить, является ли каждое найденное значение частью таблицы в файле Word. Цель состоит в том, чтобы удалить определенную строку, где значение найдено, если значение существует в таблице в Word.

Можно ли проверить, является ли найденное значение частью таблицы в Word?

Спасибо!

ответ

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 
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 

В принципе, можно использовать объект найти в диапазоне, который вы хотите искать, а затем проверить количество таблиц в диапазоне, который найден, чтобы определить, находится ли он в таблице. Если это так, вы вызываете. Удалить в коллекции .Rows найденного диапазона.