Всем привет! 👋
Уверены, что на практике вы ни раз сталкивались с ситуацией когда требовалось поменять местами столбцы.
Да, встроенного инструмента для решения этой задачи Excel не имеет. Но благодаря рассмотренному ниже макросу вы легко справитесь с этой задачей.
📢 Файл с исходным кодом размещен в конце статьи 🔽
Представленный ниже код макроса задачу обмена местами двух столбцов . Он позволяет выбрать два диапазона, которые необходимо поменять местами. Для запуска макроса вы можете:
- вынести кнопку макроса на панель быстрого доступа 🔽
- создать свою вкладку 🔽
см. пример решения:
▶️ Пример макроса
Использование данного кода позволяет легко и эффективно поменять местами два столбца в Excel, экономя время и упрощая процесс обработки данных.
▶️ Описание кода
- Объявление переменных: Columns1, Columns2, ColumnsEnd: переменные типа Range для хранения ссылок на столбцы, которые будут меняться местами.
- Обработка ошибок: При возникновении ошибки, программа переходит к метке InterchangeColumns_Error, где выводится сообщение об ошибке.
- Проверка выбранного диапазона: Код сначала проверяет, является ли выбранный диапазон действительным (тип данных Range).
Затем проверяется количество выбранных областей (должно быть ровно 2). Проверяется, что оба выбранных диапазона содержат полное количество строк в таблице. - Настройка приложения: Перед выполнением операции меняем местами, отключается автоматическое обновление расчетов (xlCalculationManual), обновление экрана (ScreenUpdating) и отображение предупреждений (DisplayAlerts).
- Определение порядка столбцов: Если первый выбранный столбец находится правее второго, меняем порядок столбцов местами, чтобы код работал корректно.
- Определение столбцов для обмена: Устанавливаем переменные Columns1 и Columns2 для хранения ссылок на выбранные столбцы.
- Подготовка столбца для вставки:С помощью переменной ColumnsEnd определяем столбец, следующий за вторым выбранным столбцом.
- Обмен местами столбцов: Вырезаем второй столбец (Columns2) и вставляем его перед первым столбцом (Columns1).
Вырезаем первый столбец и вставляем его перед столбцом, следующим за вторым столбцом (ColumnsEnd).
Выделяем обновленные столбцы с помощью метода Range и Select. - Восстановление настроек приложения: Включаем автоматический расчет (xlCalculationAutomatic), обновление экрана и отображение предупреждений. Отключаем обработку ошибок (On Error GoTo 0).
- Завершение макроса: Если происходит ошибка с кодом 1004, выводится сообщение об ошибке с описанием.
▶️ Тестируем результат
- Исходные данные:
- Поменяем местами Столбец1 и Столбец3:
🔔 Перед использованием важно убедиться что выделены правильные диапазоны столбцов, чтобы достичь желаемых результатов при выполнении операции обмена.