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