Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 5 ]
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
Тема: Переход в макросе к началу и к концу диапазона
Пусть имеется некоторый диапазон rng.
Нужно с помощью макроса переместить курсор к началу и к концу этого диапазона.
Мне не удалось найти специального метода объекта Range для выполнения этой задачи. Существует ли он?
Пока решил эту проблему с помощью выделения:
Sub ToBeginningOfRange()
' Переход к началу диапазона через выделение диапазона
Dim rng As Range
' Формируем объект с 11-го по 16-й символы файла
' (первый символ файла имеет номер 0;
' символами считаются также непечатаемые знаки (например, знак переноса строки))
Set rng = ActiveDocument.Range(Start:=11, End:=16)
rng.Select
Selection.MoveLeft Unit:=wdCharacter, Count:=1
End Sub
Sub ToEndOfRange()
' Переход к концу диапазона через выделение диапазона
Dim rng As Range
' Формируем объект с 11-го по 16-й символы файла
Set rng = ActiveDocument.Range(Start:=11, End:=16)
rng.Select
Selection.MoveRight Unit:=wdCharacter, Count:=1
End Sub
Подскажите, пожалуйста, как сделать это лучше?
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
- За сообщение: 1
Re: Переход в макросе к началу и к концу диапазона
Курсор есть Выделение. Положение курсора без выделения есть совпадение значений Start и End. Сответственно начало rng будет:
Selection.Start = rng.Start
Selection.End = rng.Start
Конец rng будет:
Selection.Start = rng.End
Selection.End = rng.End
Так что без Selection никак не обойтись.
Что касается Вашего кода, то его лучше сделать так:
Sub ToBeginningOfRange()
Dim rng As Range
Set rng = ActiveDocument.Range(Start:=11, End:=16)
rng.Collapse Direction:=wdCollapseStart
rng.Select
End Sub
Sub ToEndOfRange()
Dim rng As Range
Set rng = ActiveDocument.Range(Start:=11, End:=16)
rng.Collapse Direction:=wdCollapseEnd
rng.Select
End Sub
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
Re: Переход в макросе к началу и к концу диапазона
Большое спасибо, Александр!
Этот макрос работает отлично:
Sub ToBeginningOfRange1()
Dim rng As Range
Set rng = ActiveDocument.Range(Start:=11, End:=16)
rng.Select
Selection.Start = rng.Start
Selection.End = rng.Start
End Sub
А этот макрос изменяет диапазон, разве не так?
Sub ToBeginningOfRange()
Dim rng As Range
Set rng = ActiveDocument.Range(Start:=11, End:=16)
rng.Collapse Direction:=wdCollapseStart
rng.Select
End Sub
В моей задаче важно, чтобы диапазон не менялся.
В любом случае, проблема решена!
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
- За сообщение: 1
Re: Переход в макросе к началу и к концу диапазона
Sub ToBeginningOfRange()
Dim rng As Range
Set rng = ActiveDocument.Range(Start:=11, End:=16)
rng.Collapse Direction:=wdCollapseStart
rng.Select
End Sub
Да макрос меняет диапазон, но изначально задача стояла стояла сместить курсор в начало и в конец rng.
Используете вариант:
Sub ToBeginningOfRange1()
Dim rng As Range
Set rng = ActiveDocument.Range(Start:=11, End:=16)
Selection.Start = rng.Start
Selection.End = rng.Start
End Sub
Sub ToEndOfRange1()
Dim rng As Range
Set rng = ActiveDocument.Range(Start:=11, End:=16)
Selection.Start = rng.End
Selection.End = rng.End
End Sub
Другой вариант может пригодится в других случаях.
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
Re: Переход в макросе к началу и к концу диапазона
Еще раз благодарю, Александр!
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
Сообщений [ 5 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Переход в макросе к началу и к концу диапазона
Работу с текстами можно сравнить с бурным морем. В этом бумажном море очень сложно не утонуть, если пытаться одолеть его вплавь, но оно покоряется большому кораблю, такому как редактор Microsoft Word, и та же работа делается выполнимой и преодолимой. Наш сайт о Microsoft Office Word даст ответ про: как в word сделать таблицу.
Однако, как корабль не может плыть сам, без участия капитана и команды, так и мощная программа не будет работать без управления человека. Наш сайт о Microsoft Office Word даст ответ про: меню сервис ворд 2007 непечатаемые знаки.
Не любой человек сможет управлять судном, не любой пользователь сможет правильно и эффективно работать в Ворде. На портале о Microsoft Office Word вы узнаете про: сквозная нумерация в ворде столбцов таблицы.
То есть, вы, конечно, легко разберетесь с основными настройками самостоятельно, но многие тонкости останутся скрытыми. На портале о Microsoft Office Word вы узнаете про: word сменить заглавные буквы на маленькие.
Для того чтобы научиться как следует управлять этим кораблем, стоит посетить форум Ворд Эксперт. Полученных здесь сведений о создании шаблонов, написании макросов для самых различных операций редактирования, форматирования, создания и оформления текста, иллюстраций, таблиц, вам хватит для того, чтобы сделать механическую работу эффективной и значительно сократить время на выполнение различных операций. Наш сайт о Microsoft Office Word даст ответ про: график функции второй степени в ворд.
На форуме вы найдете советы по оптимальным настройкам разных версий Ворда, готовые решения, список источников, которые полезно изучить, рекомендации по использованию горячих клавиш и многое другое. Наш сайт о Microsoft Office Word даст ответ про: при выравнивании текста по ширине как далить пробелы.
Также можно оставить запрос на выполнение необходимой вам работы по автоматизации или оптимизации вордовских операций. На портале о Microsoft Office Word вы узнаете про: как изменить неправильно набранный текст.