Зміст
Потреба поміняти осередки місцями один з одним при роботі в таблиці Microsoft Excel трапляється досить рідко. Проте, такі ситуації бувають і їх потрібно вирішувати. Давайте з'ясуємо, якими способами можна поміняти осередки місцями в Ексель.
Переміщення клітин
На жаль, в стандартному наборі інструментів немає такої функції, яка б без додаткових дій або без зсуву діапазону, могла б міняти місцями дві комірки. Але, в той же час, хоча дана процедура переміщення і не так проста, як хотілося б, її все-таки можна влаштувати, причому декількома способами.
Спосіб 1: переміщення за допомогою копіювання
Перший варіант вирішення проблеми передбачає банальне копіювання даних в окрему область з подальшою заміною. Давайте розберемося, як це робиться.
- Виділяємо клітинку, яку слід перемістити. Тиснемо на кнопку " копіювати» . Вона розміщена на стрічці у вкладці »Головна" у групі налаштувань " Буфер обміну» .
- Виділяємо будь-який інший порожній елемент на аркуші. Тиснемо на кнопку»вставити" . Вона знаходиться в тому ж блоці інструментів на стрічці, що і кнопка " копіювати» , але на відміну від неї має набагато більш помітний вигляд через своїх розмірів.
- Далі переходимо до другої осередку, дані якої потрібно перемістити на місце першої. Виділяємо її і знову тиснемо на кнопку " копіювати» .
- Виділяємо курсором першу клітинку з даними і тиснемо на кнопку»вставити" на стрічці.
- Одне значення ми перемістили, куди нам потрібно. Тепер повертаємося до того значення, яке ми вставили в порожню клітинку. Виділяємо його і тиснемо на кнопку " копіювати» .
- Виділяємо другу клітинку, в яку потрібно перемістити дані. Тиснемо на кнопку»вставити" на стрічці.
- Отже, потрібні дані ми поміняли місцями. Тепер слід видалити вміст транзитної комірки. Виділяємо її і клацаємо правою кнопкою миші. У контекстному меню, яке активувалося після цих дій, переходимо по пункту " очистити вміст» .
Тепер транзитні дані видалено, а завдання переміщення комірок повністю виконано.
Звичайно, даний спосіб не зовсім зручний і вимагає безлічі додаткових дій. Проте, саме він застосуємо більшістю користувачів.
Спосіб 2: перетягування
Ще одним способом, за допомогою якого існує можливість поміняти осередки місцями, можна назвати просте перетягування. Правда при використанні цього варіанту відбудеться зрушення осередків.
Виділяємо клітинку, яку потрібно перемістити в інше місце. Встановлюємо курсор на її кордон. При цьому він повинен перетворитися в стрілку, на кінці якої знаходяться покажчики, спрямовані в чотири сторони. Затискаємо клавішу Shift на клавіатурі і перетягуємо на те місце куди хочемо.
Як правило, це повинна бути суміжна осередок, так як при перенесенні таким способом відбувається зрушення всього діапазону.
Тому переміщення через кілька осередків найчастіше відбувається некоректно в контексті конкретної таблиці і застосовується досить рідко. Але сама потреба поміняти вміст далеко стоять один від одного областей не зникає, а вимагає інших рішень.
Спосіб 3: Застосування макросів
Як вже було сказано вище, не існує швидкого і коректно способу в Ексель без копіювання в транзитний діапазон поміняти два осередки між собою місцями, якщо знаходяться вони не в суміжних областях. Але цього можна домогтися за рахунок застосування макросів або сторонніх надбудов. Про використання одного такого спеціального макросу ми і поговоримо нижче.
- Перш за все, потрібно включити у себе в програмі режим роботи з макросами і панель розробника, якщо ви їх досі не активували, так як за замовчуванням вони відключені.
- Далі переходимо у вкладку «Розробник». Виконуємо клацання по кнопці "Visual Basic«, яка розміщена на стрічці в блоці інструментів»Код".
- Виконується запуск редактора. У нього потрібно вставити наступний код:
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Після того, як код вставлений, закриваємо вікно редактора, натиснувши на стандартизовану кнопку закриття в його верхньому правому куті. Таким чином код буде записаний в пам'ять книги і його алгоритм можна буде відтворити для виконання потрібних нам операцій.
- Виділяємо дві комірки або два діапазони рівних розмірів, які хочемо поміняти місцями. Для цього натискаємо по першому елементу (діапазону) лівою кнопкою миші. Потім затискаємо кнопку Ctrl на клавіатурі і також натискаємо лівою кнопкою мишки по другій клітинці (діапазону).
- Щоб запустити макрос, тиснемо на кнопку «макроси» , розміщену на стрічці у вкладці »Розробник" у групі інструментів " Код» .
- Відкривається вікно вибору макросу. Відзначаємо потрібний елемент і тиснемо на кнопку " виконати» .
- Після цієї дії макрос автоматично змінює вміст виділених комірок місцями.
Важливо відзначити, що при закритті файлу макрос автоматично видаляється, так що наступного разу його доведеться записувати знову. Щоб не робити цю роботу кожен раз для конкретної книги, якщо ви плануєте в ній постійно проводити подібні переміщення, то слід зберегти файл як Книгу Excel з підтримкою макросів (xlsm).
Урок: як створити макрос в Excel
Як бачимо, в Excel існує кілька способів переміщення осередків відносно один одного. Це можна зробити і стандартними інструментами програми, але дані варіанти досить незручні і займають багато часу. На щастя, існують макроси і надбудови сторонніх розробників, які дозволяють вирішити поставлене завдання максимально легко і швидко. Так що для користувачів, яким доводиться постійно застосовувати подібні переміщення, саме останній варіант буде найоптимальнішим.