Тема: Положение курсора в конце документа
Подскажите, какие вообще есть функции для проверки положения курсора достигшего конца документа?
С уважением.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подскажите, какие вообще есть функции для проверки положения курсора достигшего конца документа?
С уважением.
Т.е. находится ли курсор в конце документа?
If Selection.End = ActiveDocument.Content.End Then
или
If Selection.End = ActiveDocument.Range.End Then
Но чем отличаются ActiveDocument.Range и ActiveDocument.Content я не знаю.
viter.alex, почему то условие выполняется если есть какое-либо выделение, включающее последний символ абзаца. Если курсор просто находится в конце документа, условие не выполняется?
Попробуй так: Selection.Paragraphs.Last.Range.End, т.е. конец последнего абзаца в выделении. Перед использованием этого метода выделение свернуть при помощи Collapse
Нет, что-то не то. Условие не выполняется даже если выделить и последний знак или последний абзац целиком. А при команде Collapes курсор оказывается совсем не в конце документа.
Collapse не переводит курсор в конец документа, а сворачивает выделение к его концу или началу.
Чтобы перевести программно курсор в конец документа, нужно выполнить такую строку:
Selection.EndKey wdStory
Я не знаю, почему у вас не выполняется. Проверил ещё раз. Попробуйте вручную поставить курсор в конец документа и выполнить строку:
MsgBox "Selection.End: " & selection.End & vbcr & "ActiveDocument.Range.End: " & ActiveDocument.Range.End
Да я собственно говоря и начинал так тестировать: устанавливал курсор в конец документа и в окне "выполнить" проверял выражения на "правоту".
Ваша последняя функция подтверждает, что одинаковое значение данные имеют только в том случае, если последний символ абзаца (скрытые символы форматирования) выделен. В противном случае значение параметра Selection.End на единицу меньше чем ActiveDocument.Range.End
На всякий случай ОС Windows 7, MS Office 2007.
А если:
If Selection.Characters.Last = ActiveDocument.Range.Characters.Last Then
У меня проверка конца документа требуется в последовательностях поиска и замен, но там приходится иными путями выкручиваться... У вас другая ситуация?
Денис, решение оригинальное и самое интересное, что работает, но почему у меня не срабатывают стандартные способы проверки, которые работают у viter.alex.
Я поэтому и обратился, что в сущности ни с чем подобным не ожидал столкнуться.
Денис сделал всё правильно, а я только запутал. Действительно, Selection.Characters.Last, если ничего не выделено, вернёт символ перед которым стоит курсор. В случае, если курсор находится в конце документа, это будет символ абзаца. А Selection.End, который я предлагал использовать, вернёт конец выделения. Разницу чувствуете?
Вот такая конструкция тоже будет работать правильно:
If Selection.Characters.Last.End = ActiveDocument.Range.End Then
Да, кстати, я сразу внимательно не посмотрел, Денис, в твоем коде, если курсор стоит в конце абзаца, но не в конце документа условие все равно выполняется.
viter.alex спасибо. Просто странно, что нет каких либо стандартных функций проверки достижения (или положения курсора) конца документа.
если курсор стоит в конце абзаца, но не в конце документа условие все равно выполняется.
Да, правда! Проверял, стоя на последнем абзаце.
Работает вариант viter.alex-a.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Положение курсора в конце документа
Для всех, кто желает совершенствоваться, расти и не любит терять времени понапрасну, предлагаем замечательную шпаргалку по Ворду – форум Ворд Эксперт. Наш сайт о Microsoft Office Word даст ответ про: функция вставка ворд 2007. Что приятно, это русский форум, очень теплый, там вы не найдете заумных слов и жутких сленговых терминов, в которых без Билла Гейтса не разберешься. На портале о Microsoft Office Word вы узнаете про: как сделать текст на всю страницу в ворде. Все просто и понятно.
Заходя в дом - на форум, вы тут же оказываетесь в «прихожей» - разделе, где даются ответы на основные вопросы, как по самому Ворду, так и по устройству форума и сайта. На портале о Microsoft Office Word вы узнаете про: цщкв 2007 как убрать разрывы. Там же вам предложат почитать что-нибудь интересное (про Ворд, конечно, за этим вы и пришли).
А в «гостиной» вы сможете обсудить программу, вашу версию, ее настройки, особенности работы, форматирование и многое другое. На портале о Microsoft Office Word вы узнаете про: как добавлять сноски в word 2007. Вас научат оптимизировать эксплуатацию Microsoft Word с помощью макросов. Это совсем не сложно.
В «столовой» форума подаются готовые блюда – оригинальные решения той либо иной проблемы, макросы и многое другое. Наш сайт о Microsoft Office Word даст ответ про: как перевести в pdf из word 2003. Если хотите заказать «экзотическое блюдо», добро пожаловать «на кухню» - раздел «заявки на разработку». На портале о Microsoft Office Word вы узнаете про: программа ворд как перевернуть лист. Оставьте в нем описание своей проблемы, и вам помогут.
Что такое «курилка» объяснять, наверно, никому не надо. На портале о Microsoft Office Word вы узнаете про: друзья помогите как в ворде повернуть текст горизантально. Заходите и сами все увидите. А пожелания можно оставлять в соответствующем разделе.