Всем привет! 👋
Сегодня разберем макрос позволяет поменять местами два диапазона ячеек.
📢 Файл с исходным кодом размещен в конце статьи 🔽
▶️ Пример макроса
Напомним, в прошлых обзорах мы рассмотрели:
- Как поменять столбцы местами
- Как поменять строки местами
Вместо перемещения строк или столбцов, данный код обменивает значения ячеек между выбранными диапазонами, сохраняя их размер и структуру:
▶️ Краткое описание
- Объявление переменных: Range1 и Range2 - переменные типа Range, которые будут использоваться для хранения ссылок на выбранные диапазоны ячеек. r - переменная типа Variant, используемая для временного хранения значений ячеек при обмене.
- Проверка количества выбранных областей: Проверяется, что пользователь выбрал ровно две области.Если количество выбранных областей отличается от двух, выводится сообщение об ошибке, указывающее на необходимость выбрать два диапазона.
- Проверка размеров выбранных диапазонов: Проверяется, что оба выбранных диапазона имеют одинаковое количество столбцов и строк.
Если размеры диапазонов не совпадают, выводится сообщение об ошибке, указывающее на необходимость выбрать два диапазона одинакового размера. - Настройка приложения Excel: Приложение Excel переводится в ручной режим расчета формул, чтобы избежать ненужных вычислений при обмене ячейками. Включается обновление экрана, чтобы изменения были видны пользователю. Включается отображение сообщений и предупреждений для информирования пользователя о возможных проблемах.
- Обмен значениями ячеек: Значения ячеек из первого выбранного диапазона сохраняются во временной переменной r.
Значения ячеек из второго выбранного диапазона копируются в первый выбранный диапазон.
Значения из временной переменной r присваиваются ячейкам второго выбранного диапазона. - Восстановление настроек приложения Excel: Перевод приложения Excel обратно в автоматический режим расчета формул.
Включение обновления экрана и отображения сообщений и предупреждений. - Обработка ошибок: Если возникает ошибка при выполнении кода, она перехватывается и обрабатывается.
Если возникла ошибка с кодом 1004, показывается сообщение об ошибке с описанием ошибки.
▶️ Тестируем результат
🔔 Для удобства использования поместим макрос на ленту:
- Исходные данные:
- поменяем местами ячейку1 и ячейку10:
🔔 Перед использованием убедитесь, что выбранные диапазоны ячеек имеют одинаковое количество столбцов и строк.