Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 04.09.2008, 14:04   #1
ar.
 
Регистрация: 04.09.2008
Сообщений: 9
По умолчанию Как поменять строки местами?

Есть две вы строки, расположенные не далеко друг от друга. Как поменять их местами, к примеру предварительно их выделив?
ar. вне форума
Старый 05.09.2008, 11:36   #2
madmot
Форумчанин
 
Регистрация: 04.09.2007
Сообщений: 155
По умолчанию

Как неоднократно советовали, сначала смоделировать свои действия в макрорекордере (Меню "Сервис" - "Макрос" - "Начать запись", задаем имя макроса и выбираем место где его сохранить, рекомендую выбрать "Документ", чтоб не засарять шаблон Normal.dot, в дальнейшем, после отладки макрос не трудно будет добавить и туда)

Вот что сделал макрорекордер:
Код:
Sub CP()
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend ' выделение до конца строки
    Selection.Cut 'вырезать
    Selection.MoveUp Unit:=wdLine, Count:=2 'переход на строки вверх
    Selection.PasteAndFormat (wdPasteDefault) 'вставить
End Sub
Теперь, подумаем, что нам надо для замены двух строк.
во-первых, надо пометить место окуда вырезаем первую строку, подойдет обычная закладка (посмотреть код добавления/удаления закладки можно так же в макрорекордере)
Вырезаем строку.
Далее, переходим к заменяемой строке. После вставки, переходим на строку ниже (Selection.MoveDown) т.к. текст сместился на строку вниз.
Вырезаем строку, возвращаемся на закладку, вставляем.

Примерно такой алгоритм.

Правда существут проблемма выделения двух строк. В режиме макрорекордера не работает выделение мышью, поэтому записать такие действия как: выделить строку и удерживая Ctrl выделить втроую строку.

Тут можно посоветовать использование InputBox, в нем предложить ввести число строк (+4 или -2) относительно первой из заменяемых строк, правда если строки располжены не далеко друг от друга...
Справку по использованию InputBox можно посмотреть в Help-e

В теме "Макрос, расширяющий функцию Find" прикреплен файлик с некоторыми функциями позиционирования в документе VBA.rar

Последний раз редактировалось madmot; 05.09.2008 в 11:43.
madmot вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поменять местами столбцы veter_s_morya SQL, базы данных 4 29.06.2008 13:36
Поменять местами две половины массива, сохраняя их порядок. Леди Уинтер Помощь студентам 11 09.01.2008 09:21
Поменять местами строки в memo Бублик Помощь студентам 5 18.11.2007 15:27
Как поменять строки в текстовом файле местами _ares_ Помощь студентам 8 13.11.2007 02:14