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

Вход

Регистрация

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

 

= Мир MS Excel/Перенос выделенной строки над выделенной строкой - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Перенос выделенной строки над выделенной строкой
den45444 Дата: Суббота, 29.08.2015, 08:18 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Прошу помочь с решением макроса.
Нужно:
перенести выделенную строку над другой выделенной строкой.

Нашел макрос, который переставляет местами выделенные строки:
[vba]
Код
Sub RowSwapper()
Dim tempRRay As Variant
With Selection
With Range(.Areas(1), .Areas(.Areas.Count)).EntireRow
tempRRay = .Rows(1).Value
.Rows(1).Value = .Rows(.Rows.Count).Value
.Rows(.Rows.Count).Value = tempRRay
End With
End With
End Sub
[/vba]

В этом макросе сбиваются все формулы и цвет текста становится черным.
К сообщению приложен файл: 9507842.xlsm (21.0 Kb)
 
Ответить
СообщениеПрошу помочь с решением макроса.
Нужно:
перенести выделенную строку над другой выделенной строкой.

Нашел макрос, который переставляет местами выделенные строки:
[vba]
Код
Sub RowSwapper()
Dim tempRRay As Variant
With Selection
With Range(.Areas(1), .Areas(.Areas.Count)).EntireRow
tempRRay = .Rows(1).Value
.Rows(1).Value = .Rows(.Rows.Count).Value
.Rows(.Rows.Count).Value = tempRRay
End With
End With
End Sub
[/vba]

В этом макросе сбиваются все формулы и цвет текста становится черным.

Автор - den45444
Дата добавления - 29.08.2015 в 08:18
AndreTM Дата: Суббота, 29.08.2015, 12:12 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
А зачем вам переставлять именно выделенные строки местами? Не проще ли добавить столбец с нумерацией позиций внутри раздела - и затем просто отсортировать по нему?
Кроме того, тут есть такая тонкость - если вы начинаете использовать макросы, изменяющие структуру диапазонов - то в этих же макросах нужно предусмотреть проверку/замену формул листа, которые затрагивает работа макроса. Или вообще отказаться от формул листа (в модифицируемой области), и начать использовать самописные, аналогичные по функционалу, UDF в едином пространстве модулей макросов...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеА зачем вам переставлять именно выделенные строки местами? Не проще ли добавить столбец с нумерацией позиций внутри раздела - и затем просто отсортировать по нему?
Кроме того, тут есть такая тонкость - если вы начинаете использовать макросы, изменяющие структуру диапазонов - то в этих же макросах нужно предусмотреть проверку/замену формул листа, которые затрагивает работа макроса. Или вообще отказаться от формул листа (в модифицируемой области), и начать использовать самописные, аналогичные по функционалу, UDF в едином пространстве модулей макросов...

Автор - AndreTM
Дата добавления - 29.08.2015 в 12:12
den45444 Дата: Суббота, 29.08.2015, 12:31 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Мне нужно не менять местами строки, а выделенную строку переставить в другое место (например над другой выделенной строкой).
 
Ответить
СообщениеМне нужно не менять местами строки, а выделенную строку переставить в другое место (например над другой выделенной строкой).

Автор - den45444
Дата добавления - 29.08.2015 в 12:31
den45444 Дата: Суббота, 29.08.2015, 12:32 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AndreTM, возможно собрать такой макрос?
 
Ответить
СообщениеAndreTM, возможно собрать такой макрос?

Автор - den45444
Дата добавления - 29.08.2015 в 12:32
TimSha Дата: Суббота, 29.08.2015, 13:38 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 94 ±
Замечаний: 0% ±

Excel 2013 Pro +
Мне нужно не менять местами строки, а выделенную строку переставить в другое место

Совет от Елены, как привет из 2013-го: "Выделяете строку целиком (не диапазон) -- подводите мышку к верхней или нижней границе, чтобы получилась крестообразная стрелка (как для перетаскивания) -- зажимаете Shift на клавиатуре -- перемещаете строку целиком в нужное место -- отпускаете сначала мышку, затем Shift"


"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Ответить
Сообщение
Мне нужно не менять местами строки, а выделенную строку переставить в другое место

Совет от Елены, как привет из 2013-го: "Выделяете строку целиком (не диапазон) -- подводите мышку к верхней или нижней границе, чтобы получилась крестообразная стрелка (как для перетаскивания) -- зажимаете Shift на клавиатуре -- перемещаете строку целиком в нужное место -- отпускаете сначала мышку, затем Shift"

Автор - TimSha
Дата добавления - 29.08.2015 в 13:38
RAN Дата: Суббота, 29.08.2015, 16:04 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
К сообщению приложен файл: 6126570.jpg (57.5 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение

Автор - RAN
Дата добавления - 29.08.2015 в 16:04
AndreTM Дата: Суббота, 29.08.2015, 16:15 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Друзья мои, я надеюсь, вами движет только искреннее сочувствие к задаче ТС... Но не создавайте ему дополнительные проблемы :)

Я почему и завёл разговор - если вы собираетесь модифицировать объект (а удаление/вырезание/вставка строк листа - это что?) - не забывайте никогда о логике програмеров M$, закладвающих в функции листа иногда такие выверты... поэтому сразу озаботьтесь и контролем непротиворечивости данных, а также формул, основанных на этих данных; а не просто тыкайте в "готовые решения", которые "готовы" для других задач... B)


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеДрузья мои, я надеюсь, вами движет только искреннее сочувствие к задаче ТС... Но не создавайте ему дополнительные проблемы :)

Я почему и завёл разговор - если вы собираетесь модифицировать объект (а удаление/вырезание/вставка строк листа - это что?) - не забывайте никогда о логике програмеров M$, закладвающих в функции листа иногда такие выверты... поэтому сразу озаботьтесь и контролем непротиворечивости данных, а также формул, основанных на этих данных; а не просто тыкайте в "готовые решения", которые "готовы" для других задач... B)

Автор - AndreTM
Дата добавления - 29.08.2015 в 16:15
RAN Дата: Суббота, 29.08.2015, 16:25 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Дык вроде работает :)
К сообщению приложен файл: 7623544.xlsx (10.5 Kb)


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 29.08.2015, 16:38
 
Ответить
СообщениеДык вроде работает :)

Автор - RAN
Дата добавления - 29.08.2015 в 16:25
den45444 Дата: Понедельник, 31.08.2015, 05:33 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
TimSha,
Совет от Елены, как привет из 2013-го: "Выделяете строку целиком (не диапазон) -- подводите мышку к верхней или нижней границе, чтобы получилась крестообразная стрелка (как для перетаскивания) -- зажимаете Shift на клавиатуре -- перемещаете строку целиком в нужное место -- отпускаете сначала мышку, затем Shift"


Этот способ я уже пробовал. Не помогает. У меня эксель 2007.
 
Ответить
СообщениеTimSha,
Совет от Елены, как привет из 2013-го: "Выделяете строку целиком (не диапазон) -- подводите мышку к верхней или нижней границе, чтобы получилась крестообразная стрелка (как для перетаскивания) -- зажимаете Shift на клавиатуре -- перемещаете строку целиком в нужное место -- отпускаете сначала мышку, затем Shift"


Этот способ я уже пробовал. Не помогает. У меня эксель 2007.

Автор - den45444
Дата добавления - 31.08.2015 в 05:33
den45444 Дата: Понедельник, 31.08.2015, 05:39 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN,
Дык вроде работает

Не понял что конкретно вы предлагаете в прикрепленном файле...
 
Ответить
СообщениеRAN,
Дык вроде работает

Не понял что конкретно вы предлагаете в прикрепленном файле...

Автор - den45444
Дата добавления - 31.08.2015 в 05:39
Pelena Дата: Понедельник, 31.08.2015, 07:35 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19603
Репутация: 4660 ±
Замечаний: ±

Excel 365 & Mac Excel
den45444, я так понимаю, что Вам нужна возможность менять местами этапы?
Можно перетаскивать с зажатым Shift, захватывая целиком группу со строкой Этап№ и голубой строкой в конце группы. Тогда формулы не сбиваются. Останется только скорректировать номера этапов.

Или другой способ (в файле) не захватывать в формуле строку со словом Этап№. В файле поменяла местами первый и второй этапы так же перетаскиванием с Shift
К сообщению приложен файл: 8368880.xlsm (18.8 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеden45444, я так понимаю, что Вам нужна возможность менять местами этапы?
Можно перетаскивать с зажатым Shift, захватывая целиком группу со строкой Этап№ и голубой строкой в конце группы. Тогда формулы не сбиваются. Останется только скорректировать номера этапов.

Или другой способ (в файле) не захватывать в формуле строку со словом Этап№. В файле поменяла местами первый и второй этапы так же перетаскиванием с Shift

Автор - Pelena
Дата добавления - 31.08.2015 в 07:35
den45444 Дата: Понедельник, 31.08.2015, 08:11 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Pelena, Нет. Вы не правильно поняли. Нужно например:

Выделить строку номер восемь с первого этапа и перенести ее во второй этап между строками 19 и 20.

По вашему способу, у меня не получается. Очищает строки.
 
Ответить
СообщениеPelena, Нет. Вы не правильно поняли. Нужно например:

Выделить строку номер восемь с первого этапа и перенести ее во второй этап между строками 19 и 20.

По вашему способу, у меня не получается. Очищает строки.

Автор - den45444
Дата добавления - 31.08.2015 в 08:11
den45444 Дата: Понедельник, 31.08.2015, 08:15 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Pelena,
При выделении строки и наведении курсора в углу (+) команда пишет "Чтобы удалить ячейки, тащите внутр выделения".
 
Ответить
СообщениеPelena,
При выделении строки и наведении курсора в углу (+) команда пишет "Чтобы удалить ячейки, тащите внутр выделения".

Автор - den45444
Дата добавления - 31.08.2015 в 08:15
Pelena Дата: Понедельник, 31.08.2015, 09:08 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 19603
Репутация: 4660 ±
Замечаний: ±

Excel 365 & Mac Excel
наведении курсора в углу (+)

Не надо "в углу", надо на границе. См. видео, только вместо ладошки у Вас будет курсор с крестообразной стрелкой. И Shift не забудьте зажать


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
наведении курсора в углу (+)

Не надо "в углу", надо на границе. См. видео, только вместо ладошки у Вас будет курсор с крестообразной стрелкой. И Shift не забудьте зажать

Автор - Pelena
Дата добавления - 31.08.2015 в 09:08
RAN Дата: Понедельник, 31.08.2015, 09:22 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Можно ничего не таскать, а испольковать команды вырезать и вставить вырезанные ячейки.
Когда надоест таскать их поштучно, можно включить рекордер, и на основе записи написать код, позволяющий в одно нажатие перемещать сразу много строк.
К сообщению приложен файл: 9507842-2-.xlsm (19.0 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеМожно ничего не таскать, а испольковать команды вырезать и вставить вырезанные ячейки.
Когда надоест таскать их поштучно, можно включить рекордер, и на основе записи написать код, позволяющий в одно нажатие перемещать сразу много строк.

Автор - RAN
Дата добавления - 31.08.2015 в 09:22
den45444 Дата: Понедельник, 31.08.2015, 10:07 | Сообщение № 16
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Pelena, Попробовал. Работает. Но... Не совсем удобно.
 
Ответить
СообщениеPelena, Попробовал. Работает. Но... Не совсем удобно.

Автор - den45444
Дата добавления - 31.08.2015 в 10:07
den45444 Дата: Понедельник, 31.08.2015, 10:09 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, Нельзя ли написать макрос который сможет выделенную строку перенести туда, куда пожелаешь?
 
Ответить
СообщениеRAN, Нельзя ли написать макрос который сможет выделенную строку перенести туда, куда пожелаешь?

Автор - den45444
Дата добавления - 31.08.2015 в 10:09
den45444 Дата: Понедельник, 28.09.2015, 19:44 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Задача решена.
Пишу макрос, возможно кому-нибудь пригодится.
[vba]
Код
Sub перенос_строк()
     Dim ra As Range: Set ra = Selection
     msg1 = "1)Выделите строки, которые нужно перенести; 2)Нажмите Ctrl; 3)Выделите еще одно строку, над которой нужно вставить; 4)Запустите макрос"
     If ra.Areas.Count <> 2 Then MsgBox msg1, vbCritical, "Ошибка": Exit Sub
     ra.Areas(1).Copy
     ra.Areas(2).Insert Shift:=xlDown
     ra.Areas(1).Delete
End Sub
[/vba]

Тему можно закрыть.
 
Ответить
СообщениеЗадача решена.
Пишу макрос, возможно кому-нибудь пригодится.
[vba]
Код
Sub перенос_строк()
     Dim ra As Range: Set ra = Selection
     msg1 = "1)Выделите строки, которые нужно перенести; 2)Нажмите Ctrl; 3)Выделите еще одно строку, над которой нужно вставить; 4)Запустите макрос"
     If ra.Areas.Count <> 2 Then MsgBox msg1, vbCritical, "Ошибка": Exit Sub
     ra.Areas(1).Copy
     ra.Areas(2).Insert Shift:=xlDown
     ra.Areas(1).Delete
End Sub
[/vba]

Тему можно закрыть.

Автор - den45444
Дата добавления - 28.09.2015 в 19:44
  • Страница 1 из 1
  • 1
Поиск:

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