Excel поменять строки местами

Excel поменять строки местами 

Добрый день, уважаемые читатели! Наболевший вопрос, который откладывал долгое время. Сразу оговорюсь - о транспортировании (замены столбца на строку и наоборот) мы поговорим в следующих статьях.

Сегодня речь пойдёт о замене значений двух строк/столбцов, то есть нам нужно просто поменять местами столбцы или строки в таблице Excel. Что мы для этого обычно делаем:

  1. Выделяем строку/столбец, которые будем переносить;
  2. Даём команду "Вырезать";
  3. Выделяем место где должны быть строки/столбцы;
  4. Даём команду "Вставить".

 

Также можно просто перетаскивать за рамку выделения нужные нам диапазоны. 

Excel поменять строки местами

 

Но бывают случаи, когда в наличии имеется большая таблица, в которой нужно поменять местами значения, но места под новые столбцы/строки взять негде. Не будем рассматривать вариант вставки новой строки/столбца, он может нарушить выверенную структуру и формулы. Что же тогда делать? Попробуем решить данную проблему с помощью макроса. 

 

Для замены необходимо соблюдение двух условий:

1) диапазон ячеек ОБЯЗАТЕЛЬНО должен быть одинаковой величины;

2) ОБЯЗАТЕЛЬНО должны быть выделены два диапазона ячеек.

 

Текст:

 

Sub ChangePlaces()

Dim ra As Range: Set ra = Selection

msg1 = "Нужно выделить ДВА диапазона ячеек одинакового размера!"

msg2 = "Нужно выделить диапазоны ОДИНАКОВОГО размера!"

If ra.Areas.Count <> 2 Then MsgBox msg1, vbCritical, "Ошибка": Exit Sub

If ra.Areas(1).Count <> ra.Areas(2).Count Then MsgBox msg2, vbCritical, "Ошибка": Exit Sub

Application.ScreenUpdating = False

arr2 = ra.Areas(2).Value

ra.Areas(2).Value = ra.Areas(1).Value

ra.Areas(1).Value = arr2

End Sub

 

Немного пояснений:

  • ra - это область выделения;
  • msg1 и msg2 - сообщение о соответствующих ошибках;
  • If ra.Areas.Count <> 2 - условие выделения двух диапазонов;
  • If ra.Areas(1).Count <> ra - условие выделения одинаковых по длине диапазонов ячеек;
  • Application.ScreenUpdating - экране не обновится если не выполнены два условия;
  • остальное показывает, что диапазоны будут заменены друг на друга.

 

Добавим новый модуль к нашей книге. Вкладка "Разработчик", кнопка "Visual basic", далее "Insert" и "Module".

Excel поменять строки местами

 

Теперь проверим правильность работы макроса. Выделим с помощью клавиши Ctrl два одинаковых диапазона ячеек (это может быть строка, столбец, просто ячейка). Воспользуемся сочетанием клавиш Alt+F8, чтобы вызвать диалоговое окно "Макросы" или перейдём на вкладку "Разработчик" и нажмём одноимённую кнопку. Появится список макросов, нажимаем кнопку "Выполнить" и наблюдаем результат.

 

Excel поменять строки местами

 

Видим, макрос работает! 

Если остались вопросы - посмотрите наше новое видео!

Вас может заинтересовать на урок - Удаление пустых ячеек.

Post Author: Иван

Добавить комментарий