Vba excel поменять местами ячейки

Обновлено: 07.07.2024

Изменение порядка ячеек часто необходимо выполнить при трансформировании таблиц, форматировании текста и всего содержимого электронного листа в Microsoft Excel в целом. У новичков порой возникает проблема с данным вопросом, поэтому в этой статье мы поможем избавиться от подобных трудностей несколькими способами.

Первый способ: копирование

Так как отдельной функции, специально предназначенной для переноса ячеек с одной части листа на другую, не существует, придется воспользоваться другими методами. Итак, первый из них — это копирование. Производится пошагово следующим образом:

  1. У нас есть таблица с сохраненными данными. Из нее необходимо перенести несколько ячеек в произвольную часть листа. Для этого кликаем по одной из них, затем в панели инструментов во вкладке «Главная» находим значение «Копировать». Также можно выделив ячейку, сделать клик правой кнопкой мыши и выбрать «Копировать» через контекстное меню. Быстрый способ скопировать данные — одновременно нажать комбинацию клавиш «Ctrl+C».
  1. Проверяем скопировалось ли значение. Для этого заходим в «Буфер обмена». Он расположен во вкладке «Главная» в первом блоке. Кликаем по стрелке вниз и в открывшемся окне слева видим скопированный только что текст или число. Это значит, что копирование данных выполнить удалось.

Обратите внимание! Если нажать «Очистить все», то копирование придется сделать заново, потому как данные удалятся.

  1. Теперь на листе выбираем место, в которое желаем переместить содержимое ячейки, нажимаем комбинацию клавиш «Ctrl+V» или же вызываем контекстное меню с помощью ПКМ, где кликаем по пункту «Вставить». Можно пользоваться инструментом «Специальная вкладка», который позволяет выполнить настройку вставки скопированного значения.
  1. Аналогично переносятся все оставшиеся ячейки, если это необходимо. Чтобы перенести всю таблицу в целом, следует полностью выполнить выделение всего диапазона. После того, как все элементы перенесены, можно отформатировать прежнюю часть листа, на которой еще остались оригинальные данные.

Второй способ: сдвиг ячеек

Иначе это называется перетаскивание. Выполнить его не сложно, главное проследить, чтобы все данные были скопированы, иначе перенос будет выполнен с искажением. Рассмотрим подробности в алгоритме ниже:

  1. Наводим курсор мыши на границу той ячейки, которую нужно перенести на другую часть листа. Обратите внимание, что курсор должен превратиться в крестообразный значок. После этого зажимаем клавишу мыши и перетаскиваем ячейку в нужное место.
  2. Также можно сделать перемещение одной ячейки на несколько ступеней вверх или вниз. Для этого также выделим ячейку, перенесем ее на нужное место, после чего выровняем порядок оставшихся окошек, которые сместились вследствие переноса.

При таком способе выделенные ячейки переходят в другую область, при этом все содержимое внутри них сохраняется, а прежние места становятся пустыми.

Третий способ: применение макросов

Данной опцией можно воспользоваться, если макросы по умолчанию установлены в Excel, в противном случае их придется добавить через систему внутренних настроек. Разберем детали выбранного способа:

  1. Переходим в меню «Файл», затем в нижней части списка переходим к пункту «Параметры».
  1. Открывается окно «Параметры Excel», здесь необходимо кликнуть по пункту «Настроить ленту» и поставить галочку напротив пункта «Разработчик». Подтверждаем свои действия кнопкой «ОК».

Сразу обратите внимание на панель вкладок, вкладка с названием «Разработчик должна появиться в самом конце.

  1. После переключаемся на вкладку «Разработчик», в ней находим инструмент «Visual Basic». Visual Basic — это индивидуальный редактор данных. Необходимо дождаться загрузки дополнительного окна.
  1. После открытия вспомогательной программы настроек ищем блок инструментов «Код», он нам и потребуется для корректного редактирования. Находим раздел «View Code», в открывшееся поле вставляем специальный код, который указан ниже:
  1. Следом жмем кнопку «Enter», чтобы данные сохранились. После сохранения можно закрыть окно редактора и продолжить редактирование.
  1. Зажимаем клавишу «Ctrl», затем выделяем одинаковое количество строк и столбцов, чтобы получился равномерный со всех сторон диапазон. Теперь переходим к разделу «Макросы» в панели инструментов, кликаем по нему, открывается окно с функцией. Жмем кнопку «Выполнить».
  1. Итог данного процесса — смена местоположения ячеек в пределах одного листа.

На заметку! Существует возможность переноса индивидуальных ячеек и их диапазонов с одного листа Excel на другой, причем для этого используется только один многостраничный файл.

Подведем итоги

Для новичков больше подойдут первые два варианта переноса ячеек. Они не требуют углубленных знаний программы Microsoft Excel и работают в разных версиях табличного процессора. Что касается макросов, то использование данной методики довольно сложное, очень важно ничего не перепутать, иначе велик риск совершить ошибку и вовсе отформатировать всю страницу без возврата данных, поэтому при переносе ячеек рекомендуется быть предельно внимательными.

Когда мы обрабатываем рабочий лист, нам может потребоваться иногда поменять местами содержимое двух ячеек. Обычно большинство из нас просто знает, как «вырезать, вставить и скопировать» для замены содержимого, но это требует времени. Мы поговорим о том, как быстро поменять местами содержимое ячеек в Excel.

Вручную поменяйте местами содержимое двух соседних ячеек

Иногда необходимо поменять местами две соседние ячейки. Мы легко можем сделать это вручную. Посмотрите на следующий снимок экрана, я хочу поменять местами ячейки A4 и B4, сделайте следующее:

doc-swap-cells1

1. Выберите ячейку, которую хотите поменять местами. В этом примере выберите ячейку A4.

2, Нажмите Shift и поместите курсор на правую границу.

3. Затем перетащите курсор к правой границе ячейки B4.

4. Когда отображается «工», Отпустите мышь.

5. И два содержимого ячеек поменялись местами. Смотрите скриншот:

doc-swap-cells2

С помощью этого метода мы также можем поменять местами две соседние строки или столбцы.

Быстро поменять местами содержимое двух ячеек или диапазонов в Excel:

Kutools for Excel's Диапазоны обмена Утилита поможет вам легко поменять местами сразу две указанные ячейки или диапазоны в Excel, как показано ниже.
Скачайте и попробуйте прямо сейчас! (30-дневная бесплатная трасса)

Поменять местами содержимое двух несмежных ячеек с кодом VBA

Когда две ячейки не находятся рядом, описанный выше метод работать не будет. Мы можем поменять их местами с кодом VBA.

1, нажмите Ctrl и выберите две несмежные ячейки, которые вы хотите поменять местами.

2. Нажмите разработчик>Визуальный Бейсик, Новый Microsoft Visual Basic для приложений появится окно, щелкните Вставить>Модуль, и введите следующий код в Модуль:

3. Затем нажмите нажмите кнопку, чтобы запустить код, затем отобразится диалоговое окно, в котором вы можете выбрать две ячейки, между которыми вы хотите переключиться. Смотрите скриншоты:

диапазоны подкачки документов1

4. Нажмите Ok во всплывающем диалоговом окне две выбранные ячейки меняются местами. Смотрите скриншоты:

диапазоны подкачки документов1

Ноты: Этот код VBA не может поменять местами форматирование двух ячеек.

Легко поменять местами содержимое двух случайных ячеек всего за несколько кликов

Работы С Нами Kutools for Excel's Диапазоны обмена Утилита, мы не только можем поменять местами две соседние ячейки, строки или столбцы, но также можем легко переключать две несмежные ячейки, строки или столбцы.

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. Нажмите Kutools > Диапазон > Диапазоны обмена, см. снимок экрана:


2. в Диапазоны обмена диалоговое окно, вам необходимо:


Затем сразу же меняются местами две выбранные ячейки или диапазоны. Смотрите скриншоты:

диапазоны подкачки документов1

Если вы хотите получить 30-дневную бесплатную пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

Во время работы в Эксель нередко возникает необходимость в изменении порядка ячеек, например, требуется поменять местами некоторые из них. Как это сделать разными способами, разберем в данной статье.

Процедура перемещения ячеек

Отдельной функции, позволяющей выполнить данную процедуру в программе Excel нет. А при использовании стандартных инструментов неизбежно будет происходить сдвиг остальных ячеек, которые нужно потом вернуть на место, что в результате приведет к дополнительным действиям. Однако методы для выполнения поставленной задачи есть, и о них пойдет речь ниже.

Метод 1: копирование

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

Копирование ячейки в Эксель

  1. Встаем в первую ячейку (выделяем ее), которую планируем переместить. Находясь в главной вкладке программы нажимаем на кнопку “Копировать” (группа инструментов “Буфер обмена”). Также можно просто нажать комбинацию клавиш Ctrl+C.

Несмотря на то, что для реализации данного метода нужно выполнить немало дополнительных действий, все же, им пользуется наибольшее количество пользователей.

Метод 2: перетаскивание

Данный метод также применяется для того, чтобы поменять местами ячейки, однако, в этом случае будет происходить сдвиг ячеек. Итак, выполняем следующие действия:

Перемещение ячейки в Эксель

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

Метод 3: использование макросов

Мы упоминали в начале статьи, что в Excel, увы, нет специального инструмента, позволяющего оперативно “перекинуть” местами ячейки (за исключением метода выше, который эффективен только для смежных элементов). Однако сделать это можно с помощью макросов:

  1. Для начала нужно убедиться в том, что в приложении активирован так называемый “режим разработчика” (по умолчанию выключен). Для этого:
    • переходим в меню “Файл” и выбираем в перечне слева пункт “Параметры”.
    • в параметрах программы щелкаем по подразделу “Настроить ленту”, в правой части ставим галочку напротив пункта “Разработчик” и жмем OK.
  2. Переключаемся во вкладку “Разработчик”, где жмем по значку “Visual Basic” (группа инструментов “Код”).
  3. В редакторе, нажав на кнопку “View Code”, вставляем в появившемся окне код ниже:
    Sub ПеремещениеЯчеек()
    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
  4. Закрываем окно редактора, щелкнув привычную кнопку в виде крестика в верхнем правом углу.
  5. Зажав клавишу Ctrl на клавиатуре выделяем две ячейки или две области с одинаковым количество элементов, которые планируем поменять местами. Затем нажимаем кнопку “Макросы” (вкладка “Разработчик”, группа “Код”).
  6. Появится окно, в котором мы видим ранее созданный макрос. Выбираем его и щелкаем “Выполнить”.
  7. В результате работы макрос поменяет местами содержимое выделенных ячеек.

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

Сохранение документа Excel с поддержкой макросов

Заключение

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

Expression – выражение (переменная), возвращающее объект Range.

Параметры

Параметр Описание Значения
Shift Необязательный параметр. Определяет направление сдвига ячеек. Если параметр Shift опущен, направление выбирается в зависимости от формы* диапазона. xlShiftDown (-4121) – ячейки сдвигаются вниз;
xlShiftToRight (-4161) – ячейки сдвигаются вправо.
CopyOrigin Необязательный параметр. Определяет: из каких ячеек копировать формат. По умолчанию формат копируется из ячеек сверху или слева. xlFormatFromLeftOrAbove (0) – формат копируется из ячеек сверху или слева;
xlFormatFromRightOrBelow (1) – формат копируется из ячеек снизу или справа.

* Если диапазон горизонтальный или квадратный (количество строк меньше или равно количеству столбцов), ячейки сдвигаются вниз. Если диапазон вертикальный (количество строк больше количества столбцов), ячейки сдвигаются вправо.

Примеры

Простая вставка диапазона

Вставка диапазона ячеек в диапазон «F5:K9» со сдвигом исходных ячеек вправо:

Если бы параметр Shift не был указан, сдвиг ячеек, по умолчанию, произошел бы вниз, так как диапазон горизонтальный.

Вставка вырезанного диапазона

Вставка диапазона, вырезанного в буфер обмена методом Range.Cut, из буфера обмена со сдвигом ячеек по умолчанию:

Обратите внимание, что при использовании метода Range.Cut, точка вставки (в примере: Range("D2") ) не может находится внутри вырезанного диапазона, а также в строке или столбце левой верхней ячейки вырезанного диапазона вне вырезанного диапазона (в примере: строка 1 и столбец «A»).

Вставка скопированного диапазона

Вставка диапазона, скопированного в буфер обмена методом Range.Copy, из буфера обмена со сдвигом ячеек по умолчанию:

Обратите внимание, что при использовании метода Range.Copy, точка вставки (в примере: Range("F2") ) не может находится внутри скопированного диапазона, но в строке или столбце левой верхней ячейки скопированного диапазона вне скопированного диапазона находится может.

Вставка и перемещение строк

Вставка одной строки на место пятой строки со сдвигом исходной строки вниз:

Вставка четырех строк на место пятой-восьмой строк со сдвигом исходных строк вниз:

Узнайте, как переворачивать ячейки и переключать строки в столбцы или столбцы в строки

Excel является мощным инструментом для анализа данных, но некоторые вещи, такие как перелистывание ячеек в строке или столбце, могут стать настоящей проблемой. Есть медленный ручной способ, и есть быстрые приемы, чтобы переворачивать строки, переворачивать столбцы или преобразовывать столбцы в строки за считанные секунды.

В следующей статье вы узнаете, как быстро перевернуть весь столбец снизу вверх, поменять местами строку справа налево и как полностью поменять строки столбцами.

Эти инструкции применяются к Microsoft Excel 2010, 1013, 2016, 2019 и Excel для Office 365.

Как перевернуть ячейки столбца в Excel

Несмотря на то, что в Excel существует множество вариантов сортировки для организации ячеек в алфавитном порядке, в действительности нет встроенной опции, позволяющей просто перевернуть коллекцию случайных данных, таких как имена.

Это не значит, что это невозможно. Это просто означает, что вам нужно выполнить пару дополнительных шагов, чтобы использовать функцию сортировки Excel, чтобы перевернуть столбец.

Нажмите правой кнопкой мыши столбец A и выберите Вставить , чтобы добавить новый столбец слева от столбца продавца, который вы хотите отсортировать.

Введите 1 в первой ячейке (строка 2). Введите 2 во вторую ячейку (строка 3).

Удерживая нажатой клавишу Cntrl , поместите угол мыши в нижний правый угол ячейки с цифрой 2. Курсор изменится на две горизонтальные линии. Дважды щелкните левой кнопкой мыши, чтобы автоматически заполнить оставшуюся часть столбца до имени последнего продавца. Это автоматически заполнит оставшуюся часть столбца числами от 3 до 8.

Выделите всю таблицу.

В меню Главная выберите Сортировать и фильтровать на ленте. Выберите Пользовательская сортировка .

Установите для Сортировать по значение Столбец А , для Сортировать по значение Значения ячеек и Порядок . От самого большого до самого маленького . Нажмите ОК .

Это позволит не только перевернуть весь столбец снизу вверх, но и убедиться, что все данные в остальной части таблицы поменяются на правильное имя продавца.

Теперь вы можете щелкнуть правой кнопкой мыши столбец A, чтобы выбрать его, щелкнуть правой кнопкой мыши столбец A и выбрать Удалить, чтобы удалить пронумерованный столбец.

Теперь у вас есть та же исходная таблица, с которой вы начали, но весь столбец и данные перевернуты снизу вверх.

Как поменять ячейки строк в Excel

Что делать, если вы хотите видеть данные о продажах с декабря по январь, а не с января по декабрь?

На самом деле вы можете использовать тот же подход, что и выше, для переворачивания столбцов с небольшим изменением.

Сначала добавьте новую строку прямо под заголовком и пронумеруйте эти ячейки от 1 (до января) до 12 (до декабря).

Теперь выполните те же шаги для сортировки таблицы, но на этот раз вы будете сортировать по строке, а не по столбцу.

Выделите только столбцы от A до M.

В меню Главная выберите Сортировать и фильтровать на ленте. Выберите Пользовательская сортировка .

Нажмите Параметры и выберите Сортировать слева направо .

Установите для Сортировать по значение Строка 2 , для Сортировать по значение Значения ячеек и Порядок . От самого большого до самого маленького . Нажмите ОК .

Теперь вы увидите, что весь ваш первый столбец перебирается с перевернутыми ячейками в столбце заголовка. Поскольку вы выделили все столбцы, содержащие данные, все строки данных также будут перевернуты, так что все выстроится идеально.

Теперь щелкните левой кнопкой мыши на строке 2 и удалите пронумерованную строку.

Поменяйте местами только две колонки или строки

Если вы хотите переключиться на соседние строки или столбцы, есть полезный трюк мыши, который можно использовать в Excel для достижения этой цели.

В этом примере электронной таблицы вы можете поменять строку Джули Мур на строку Джона Хадсона всего несколькими щелчками мыши.

Вот как вы это делаете:

Выделите весь ряд с Джули Мур в столбце А.

Удерживая нажатой клавишу Shift , переместите курсор мыши к верхнему краю ячейки Джули Мур. Курсор мыши изменится на перекрестие.

Удерживая нажатой клавишу Shift , перетащите мышь к верхнему краю ячейки Джона Хадсона, пока линия чуть выше этой строки не будет выделена темной линией.

Когда вы отпустите левую кнопку мыши, две строки поменяются местами.

Если вы хотите поменять столбцы вместо строк, вы можете выделить один столбец, а затем выполнить ту же процедуру.

Единственное отличие состоит в том, что вы перетаскиваете курсор мыши в сторону, пока строка после столбца, которую вы хотите поменять местами с темными линиями.

Вы можете поменять несколько строк или столбцов, используя эту же технику. Вам просто нужно выделить несколько строк или столбцов на первом шаге, а затем выполнить ту же процедуру.

Как поменять местами столбцы и строки

Что если вы хотите поменять местами весь столбец заголовка со всем столбцом продавца, при этом сохраняя целостность данных в электронной таблице?

Большинство людей предпочитают делать это вручную, даже не подозревая, что в Excel есть встроенная функция «transpose», которая сделает это за вас.

Вам понадобится область, где вы можете создать свой недавно «транспонированный» диапазон данных, поэтому создайте новый лист в вашей электронной таблице под названием «Продажи по месяцам».

Выделите весь диапазон ячеек для всей таблицы данных о продажах. Нажмите Cntrl-C , чтобы скопировать весь диапазон.

Нажмите на новый лист, который вы создаете. Щелкните правой кнопкой мыши вызов A1 и выберите параметр Транспонировать в разделе Параметры вставки .

Теперь вы увидите исходную электронную таблицу, но со строкой заголовка, поменяемой местами с первым столбцом, и всеми данными в диапазоне, упорядоченными для правильного выравнивания.

Использование функции транспонирования Excel позволяет сэкономить часы ручной работы по редактированию, если вы хотите реорганизовать свои электронные таблицы и просматривать данные различными способами.

Используйте VBA, чтобы поменять строки или столбцы (Дополнительно)

Затем преобразуйте свою функцию VBA в пользовательскую функцию Excel, которую вы можете вызывать, когда хотите поменять местами строки или столбцы.

Перевернуть столбцы или строки

Чтобы реорганизовать всю строку слева направо или столбец сверху вниз, вы можете создать для этого функцию Flip_Columns () или Flip_Rows ().

Чтобы создать этот код, выберите меню Разработчик и выберите Просмотреть код .

Если Разработчик не указан в меню, вы можете добавить его. Нажмите Файл , нажмите Параметры и выберите Настроить ленту . В этом окне найдите Разработчик на левой панели и добавьте его справа. Нажмите ОК , и появится пункт меню «Разработчик».

Чтобы перевернуть строки выбранного столбца на вашем листе, вы можете использовать следующий код VBA:

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

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

Поменяйте местами две колонки или строки

Вы можете поменять любые два значения на листе, выбрав два значения и выполнив следующий код VBA.

Этот код VBA поменяет местами любые две ячейки, будь они рядом или одна поверх другой. Просто помните, что с этим кодом вы можете поменять только две ячейки.

Транспонировать весь диапазон

Можно использовать VBA, чтобы взять выделение из листа (как в сценариях выше), транспонировать диапазон, а затем вставить его в другое место (или в другой лист).

Для этого даже есть метод в VBA:

Перелистывание столбцов и строк в Excel

Как видите, в Excel очень легко переключать столбцы и строки, менять ячейки или транспонировать весь диапазон.

Как только вы узнаете, как должны выглядеть ваши данные, вы можете выбрать лучший вариант и перевернуть или преобразовать эти ячейки всего за несколько простых шагов.

Читайте также: