Страница: 1 |
Страница: 1 |
Вопрос: Номер ТЕКУЩЕГО абзаца в Word VBA
Добавлено: 18.07.06 14:18
Автор вопроса: _ICE_ | ICQ: 354-671-214
Хотелось бы узнать номер текущего абзаца в Word через VBA
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 18.07.06 22:08
Зачем тебе номер, если есть сам selection.paragraphs(1)?
Номер ответа: 2
Автор ответа:
_ICE_
ICQ: 354-671-214
Вопросов: 18
Ответов: 103
Профиль | | #2
Добавлено: 19.07.06 09:43
Объясняю задачу: есть форматированный текст, мне нужно из этого текста скопировать кусок, который начинается с символов "57)" и заканчивается первым встреченным после этих символов разрывом раздела. Найти разрыв абзаца и комбинацию символов очень просто, но создать Selection который начинается с "57)" и заканчивается разрывом так не получится - неизвестен номер абзаца, в котором эти ориентиры найдены.
Номер ответа: 3
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #3
Добавлено: 19.07.06 22:31
Странный ты...
Настроил Find на поиск... выполнил... потом find.parent.paragraphs(1).range, и собственно всё...
Ну или там range(find.parent.start, find.parent.paragraphs(1).range.end), что точнее...
Но если использовать поиск по регулярному выражению, что word умеет, то можно искомый range найти сразу find'ом...
Но нет, упорно ищет номер...
Номер ответа: 4
Автор ответа:
_ICE_
ICQ: 354-671-214
Вопросов: 18
Ответов: 103
Профиль | | #4
Добавлено: 20.07.06 09:56
Насчет первого варианта - попробую, спасибо, но вот второй вариант конечно был бы гораздо проще, но он не прокатит - как ты заметил ищу я текст, начинающийся с (57), т.е. со скобок, а скобки используются в регулярных выражениях как операторы. Но если подскажешь как можно при помощи регулярных выражений найти текст вида "*)" буду очень спасибо...
Номер ответа: 5
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #5
Добавлено: 20.07.06 22:21
Ха ха...
Не, дело не в этом, дело в том, что ^p нельзя найти, если ищется регэксп.
А скобки как обычно, "\(57\)".
Номер ответа: 6
Автор ответа:
_ICE_
ICQ: 354-671-214
Вопросов: 18
Ответов: 103
Профиль | | #6
Добавлено: 21.07.06 10:06
Я и предполагал что есть что-то подобное, времени не было по справке лазить, спасибо. А вот вторая твоя проблемма - совершенно не проблемма. Перед операцией поиска я делаю операцию замены и заменяю разрыв раздела на что-нибудь вроде "РРРаззррыыввРаааззддееллаа", и ищу уже эту строку. Огромная благодарность, моя проблемма решена полностью.
Номер ответа: 7
Автор ответа:
_ICE_
ICQ: 354-671-214
Вопросов: 18
Ответов: 103
Профиль | | #7
Добавлено: 03.08.06 12:07
Эврика! GSerg, нашел. Правда не номер абзаца, но вариант тоже устраивает:
W.Selection.Information
(wdFirstCharacterLineNumber)
W.Selection.Information(wdActiveEndAdjustedPageNumber)
Так можно узнать номер листа в документе и номер строки на этом листе, т.е. точные координаты начала выделения. Там кроме этих свойств есть и другие параметры.