Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Перенос строки вверх или вниз - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос строки вверх или вниз (Макросы/Sub)
Перенос строки вверх или вниз
ovechkin1973 Дата: Воскресенье, 29.10.2017, 10:27 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 161
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Благодаря помощи на этому форуме сделал под себя макрос, с помощью которого выделенная ячейка с ее форматами перемещается вверх или вниз.
Вопросы:
1. Как сделать, чтобы перемещалась вся строка, если я выделяю любую ячейку на ней?
2. Как переместить сразу несколько строк, если выделил их или несколько ячеек в них?
К сообщению приложен файл: 4534062-1-.xlsm(28Kb)
 
Ответить
СообщениеБлагодаря помощи на этому форуме сделал под себя макрос, с помощью которого выделенная ячейка с ее форматами перемещается вверх или вниз.
Вопросы:
1. Как сделать, чтобы перемещалась вся строка, если я выделяю любую ячейку на ней?
2. Как переместить сразу несколько строк, если выделил их или несколько ячеек в них?

Автор - ovechkin1973
Дата добавления - 29.10.2017 в 10:27
RAN Дата: Воскресенье, 29.10.2017, 11:07 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4602
Репутация: 925 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub down()
    Selection.EntireRow.Cut
    Rows(Selection.Row + Selection.Rows.Count + 1).Insert
End Sub

Sub up()
    Selection.EntireRow.Cut
    Rows(Selection.Row - Selection.Rows.Count).Insert
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub down()
    Selection.EntireRow.Cut
    Rows(Selection.Row + Selection.Rows.Count + 1).Insert
End Sub

Sub up()
    Selection.EntireRow.Cut
    Rows(Selection.Row - Selection.Rows.Count).Insert
End Sub
[/vba]

Автор - RAN
Дата добавления - 29.10.2017 в 11:07
ovechkin1973 Дата: Воскресенье, 29.10.2017, 15:19 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 161
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, спасибо за помощь.. хотелось бы получить ответы на некоторые вопросы.. в VBA знания близки к нулю.. поэтому, если не правильно комментирую код - не обессудьте.
Код
Selection.EntireRow.Cut
В этом коде выбираем всю строку и вырезаем.. правильно понимаю?

Код
Rows(Selection.Row + Selection.Rows.Count + 1).Insert
тут для меня понять хуже..
Код
Rows
это вроде все строки листа означает.
Код
Selection.Row
- видимо выбор строки (это когда я выделяю строку или ячейку на какой то или каких то строках?
Код
Selection.Rows.Count
-подсчитываем количество строк в выбранном диапазоне? После добавляем на одну больше?
Код
Insert
- что то со свойствами связано, видимо все форматы тоже со строкой переносить.
Надеюсь описал правильно или близко к тому. Макрос при переносе вверх строк работает нормально, даже если выделяю несколько сразу строк (ячеек в этих строках). А вот вниз работает правильно только если выделяешь одну строку. Точнее может я не правильно задачу написал, но когда допустим я сразу 4 строки выделяю и запускаю макрос ВНИЗ, то все четыре строки опускаются на одну строку вниз, а не на четыре. Повторюсь - вверх нормально переноситься.
И еще вопрос. В файле, что я в первом посту выложил всегда остается выделенной одна и та же ячейка и я жмакаю кнопку на макрос, пока на нужное количество строк не перемещу.. в Вашем макросе не так.. как исправить?
К сообщению приложен файл: 6046662.xlsm(27Kb)
 
Ответить
СообщениеRAN, спасибо за помощь.. хотелось бы получить ответы на некоторые вопросы.. в VBA знания близки к нулю.. поэтому, если не правильно комментирую код - не обессудьте.
Код
Selection.EntireRow.Cut
В этом коде выбираем всю строку и вырезаем.. правильно понимаю?

Код
Rows(Selection.Row + Selection.Rows.Count + 1).Insert
тут для меня понять хуже..
Код
Rows
это вроде все строки листа означает.
Код
Selection.Row
- видимо выбор строки (это когда я выделяю строку или ячейку на какой то или каких то строках?
Код
Selection.Rows.Count
-подсчитываем количество строк в выбранном диапазоне? После добавляем на одну больше?
Код
Insert
- что то со свойствами связано, видимо все форматы тоже со строкой переносить.
Надеюсь описал правильно или близко к тому. Макрос при переносе вверх строк работает нормально, даже если выделяю несколько сразу строк (ячеек в этих строках). А вот вниз работает правильно только если выделяешь одну строку. Точнее может я не правильно задачу написал, но когда допустим я сразу 4 строки выделяю и запускаю макрос ВНИЗ, то все четыре строки опускаются на одну строку вниз, а не на четыре. Повторюсь - вверх нормально переноситься.
И еще вопрос. В файле, что я в первом посту выложил всегда остается выделенной одна и та же ячейка и я жмакаю кнопку на макрос, пока на нужное количество строк не перемещу.. в Вашем макросе не так.. как исправить?

Автор - ovechkin1973
Дата добавления - 29.10.2017 в 15:19
ovechkin1973 Дата: Вторник, 31.10.2017, 19:30 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 161
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
вопрос решил.. помог товарищ на работе. Похоже не правильно работу макроса написал.
К сообщению приложен файл: 0480388.xlsm(28Kb)
 
Ответить
Сообщениевопрос решил.. помог товарищ на работе. Похоже не правильно работу макроса написал.

Автор - ovechkin1973
Дата добавления - 31.10.2017 в 19:30
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос строки вверх или вниз (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!