Консультация № 177159
09.03.2010, 10:22
35.77 руб.
0 6 1
Здравствуйте уважаемые эксперты, подскажите, пожалуйста, в следующем, как узнать, поле ActiveDocument.Fields(1) .находится внутри таблицы или нет, если да то в какой таблице и в какой строке этой таблицы, требуется его удалить вместе с строкой таблицы где оно имеется.
Спасибо Эндрю

Обсуждение

давно
Профессор
230118
3054
09.03.2010, 15:08
общий
это ответ
Здравствуйте, Ципихович Эндрю.

Здесь используется Range с полями Start и End, которые указывают место в документе.

Приложение:
For Each t In ActiveDocument.Tables
If t.Range.Start <= ActiveDocument.Fields(1).Result.Start And t.Range.End >= ActiveDocument.Fields(1).Result.End Then
For Each r In t.Rows
If r.Range.Start < ActiveDocument.Fields(1).Result.Start And r.Range.End > ActiveDocument.Fields(1).Result.End Then
r.Delete
Exit Sub
End If
Next r
End If
Next t
5
Неизвестный
10.03.2010, 20:01
общий
Гаряка Асмик:
Спасибо за ответ, скажите, а в этой строке
ActiveDocument.Tables(1).Rows(1).Delete
нет ошибки и почему в скобках только единицы ??
давно
Профессор
230118
3054
10.03.2010, 20:12
общий
Ципихович Эндрю:
Я проверяла, все работает.
Неизвестный
11.03.2010, 05:40
общий
Гаряка Асмик:
А скажите пожалуйста этот вариант на Ваш взглвд не быстрее

Selection.GoTo What:=wdGoToField, Which:=wdGoToNext, Count:=1, Name:="" 'перейти к полю номер ...
If Selection.Information(wdWithInTable) = True Then ActiveDocument.Tables(ActiveDocument.Range(0, Selection.Tables(1).Range.End).Tables.Count).Rows(Selection.Rows.First.Index).Delete

Еще бы хотелось сделать тоже самое, избавиться от строки: Selection.GoTo What:=wdGoToField, Which:=wdGoToNext, Count:=1, Name:="" , чтобы никуда не переходить
давно
Профессор
230118
3054
11.03.2010, 11:56
общий
Ципихович Эндрю:
Так быстрее, но без перехода нельзя. Мы может определить номер таблицы или перебором, или поместив курсор на нее. Если сделать, как в ответе, перехода не будет. При желании можете запомнить в переменной,где находился курсор до этого, и потом переместиться туда обратно.
Неизвестный
11.03.2010, 12:40
общий
Точнее Which:=wdGoToNext надо убрать
Форма ответа