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: Иван

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.