Поміняти вміст комірок в Excel?


42

Чи є простий спосіб замінити вміст двох комірок в Microsoft Excel?

Я просто маю на увазі або комбінацію клавіш, або пункт меню, не включаючи копіювання у тимчасові комірки або написання сценаріїв VBA або щось подібне. Іншими словами, я шукаю спосіб просто вибрати дві клітинки і натиснути якийсь пункт меню або натиснути якусь комбінацію клавіш, яка буде міняти їх вмістом. Напевно, має бути спосіб це зробити?


Це здається дуже специфічною реалізацією сорту, і якщо його вже немає в розширених варіантах сортування, я буду здивований, якщо ви можете знайти його в іншому місці, як рішення, яке не VBA
drapkin11

Відповіді:


47

Від: http://www.extendoffice.com/documents/excel/860-excel-swap-contents-of-two-cells.html

Іноді дві сусідні клітини потрібно замінити. Ми можемо це зробити вручну легко. Подивіться на наступний знімок екрана, я хочу поміняти клітинки A4 та B4, будь ласка, зробіть наступне:

введіть тут опис зображення

  1. Виберіть клітинку, яку ви хочете змінити. У цьому прикладі виберіть клітинку A4.

  2. Натисніть клавішу Shift і поставте курсор на праву межу.

  3. Потім перетягніть курсор до правої межі комірки B4.

  4. Коли на екрані з'явиться “工”, відпустіть мишу.

  5. І вміст двох комірок замінено.

введіть тут опис зображення

За допомогою цього методу ми також можемо поміняти місцями дві сусідні рядки або стовпці.


8
Це має бути вибраним для мене ансером. Дякую!
Нам Г ВУ

2
Це не працює для мене. Він просто вставить порожні клітини між цими двома клітинками
phuclv

2
Це працює лише для сусідніх комірок, а це не те, про що було задано оригінальне запитання.
jpierson

Це не працює для мене в Excel 2010 - він швидко блимає, але вміст комірок залишається незмінним.
Хашим

@phuclv У мене була та сама проблема, що і у вас, перш ніж я зрозумів, що на кроці 2 я кладу курсор миші на праву нижню межу, а не на середню праву межу.
Річард

17

Для конкретного випадку сусідніх однакових за розміром прямокутних діапазонів , ви можете використовувати метод, описаний у цій відповіді на аналогічне запитання .

  1. Виберіть правильний або нижній діапазон
  2. Натисніть Ctrl+X
  3. Виберіть сусідній діапазон (тобто безпосередньо над або зліва)
  4. Натисніть Ctrl+ +( +зазвичай =клавіша над клавішею, тому це означає Ctrl+ Shift+ =)

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


1
Відмінно. Це саме те, що я шукав. Набагато швидше використовувати клавіатурні комбінації та працювати з кількома клітинками - це набагато швидше.
Ентоні Г - справедливість для Моніки

Це не працює для мене. А клітини сусідять одна з одною. Я не знаю, чому це не працює. Чи є якесь конкретне пояснення для цієї команди?
Розумний гуманізм

15

Я легко маю на увазі або комбінацію клавіш, або пункт меню, не передбачаючи копіювання у тимчасові комірки або написання сценаріїв VBA або щось подібне. Я шукаю спосіб просто вибрати дві клітинки та натиснути якийсь пункт меню або натиснути якусь комбінацію клавіш, яка змінить їх вміст.

Навіщо накладати це обмеження? Створення макросу робить це дрібницею. Наскільки я знаю, це неможливо зробити інакше. Ви можете призначити макрос кнопці або гарячій клавіші.

Sub Swap()     
    If Selection.Count <> 2 Then     
         MsgBox "Select 2 cells (only) to swap."     
         Exit Sub     
    End If     
    Set trange = Selection     
    If trange.Areas.Count = 2 Then     
         temp = trange.Areas(2)     
         trange.Areas(2) = trange.Areas(1)     
         trange.Areas(1) = temp     
    Else     
         temp = trange(1)     
         trange(1) = trange(2)     
         trange(2) = temp     
    End If     
End Sub     

4
Я не експерт VBA і не маю ні часу, ні схильності стати таким. Я також часто використовую багато різних комп'ютерів. Було б непогано, щоб на кожному комп'ютері, який я використовую для Excel, були доступні заміни, без необхідності шукати код для макросу VBA, який це робить, щоб я міг прив’язати його до гарячої клавіші.
Dan Molding

3
@Dan Було б непогано, якби кожен міг вбудувати свою функцію домашнього улюбленця в Excel, але тоді це стане ще більш роздутим безладом, ніж це вже є. Існує причина, чому Excel має мову макросу для автоматизації повторюваних завдань, як це. Я розмістив код, знайдений під час пошуку в Google. Вам не потрібно бути експертом.
ghoppe

+1 vba - це спосіб, яким excel дозволяє додати функції вашого улюбленця. Є також способи зробити цю vba доступною на багатьох комп’ютерах, щоб отримати лише себе або всі (наприклад, особисту
робочу

9
Навряд чи я б назвав розміщенням вмісту двох комірок / рядків / стовпців функцією домашніх тварин.
Миколай

5
@ghoppe Можливо, це не суттєво, але якщо ви зробите швидкий пошук на "помінянні вмісту двох комірок у excel" (який у вас уже є), цілком очевидно, що ми з Деном навряд чи єдині, хто дбає про цю функцію.
Миколай

5

Ні. Немає можливості замінити вміст двох комірок в Excel, не написавши власний макрос для цього.

EDIT: Схоже, зараз може бути простий спосіб замінити вміст комірок в останніх версіях Excel, тому ця відповідь, ймовірно, зараз застаріла.


це твердження неправильне. Дивіться відповідь від користувача190216.
Карл Рокі

@KarlRookey Спочатку у цій відповіді було зазначено (а це все ще є), що комірки повинні бути суміжними. Це здається, що це може більше не стосуватися останніх версій Excel. Якщо це так, то так, зараз є краща відповідь. Спасибі!
Дан Ліплення

Дякуємо, що сказали це. Усі приклади тут мають побічний ефект заміни двох комірок (якщо вони є сусідніми), але не "змінюють клітини", вони "зміщують" клітини.
Пітер Річі

2

Виберіть перший набір комірок, які потрібно поміняти, і натисніть ctrl+ x:

Виберіть клітинки ЗА ВІДТРИМИ ті, з якими потрібно обмінятися, і натисніть ctrl+ +.


1
Це працює, лише якщо клітини сусідні. В іншому випадку весь матеріал переміщується біля цільових клітин.
tumchaaditya

0

Ви можете вставити до буфера обміну до 25 елементів, щоб їх легко було поміняти за допомогою ctr + tab або cmd + tab mac


2
Це стандартна функція Mac? Автор запитання не уточнив, на якій платформі вони перебувають. Я не впевнений, що стандартний буфер обміну в усіх версіях Windows містить більше одного елемента, але безкоштовні утиліти легко доступні для забезпечення цієї функціональності (і комбінації клавіш можуть відрізнятися). Чи можете ви розширити свою відповідь, щоб зробити її всебічнішою для цього підходу?
fixer1234

Я спробував це в Windows, але не зміг зрозуміти. Я навіть спробував варіант ctrl + shift + p, який зазвичай працює у Visual Studio, щоб вставити з кільця буфера обміну.
jpierson

0
  • Виберіть нижню клітинку, яку ви хочете поміняти
  • Натисніть Ctrl+X та перейдіть до клітинки, на яку потрібно обмінятися
  • Натисніть Ctrl+ Shift+=

Зміна буде виконана


Це точно так само, як відповідь Йонаса Гейдельберга ( рівно! ) Шість років тому, і фактично те саме , що відповідь користувача 287020 .
Скотт

0

Я прочитав цю публікацію, але насправді потрібен макрос, щоб поміняти всі діапазони. Крім того, мені потрібно було поміняти кольори. Модифікований спочатку розміщений макрос, комусь це може бути корисно.

Sub Swap()

    If Selection.Areas.Count <> 2 Then
         MsgBox "Select 2 cell ranges (only) to swap."
         Exit Sub
    End If


    If Selection.Areas(1).Count <> Selection.Areas(2).Count Then
         MsgBox "The two areas must be of equal size"
         Exit Sub
    End If

    'With this for loop we run through each cell 1 by 1
    For i = 1 To Selection.Areas(1).Count
        'Swapping values
        temp = Selection.Areas(1)(i)
        Selection.Areas(1)(i) = Selection.Areas(2)(i)
        Selection.Areas(2)(i) = temp

        'Swapping color
        tempColor = Selection.Areas(1)(i).DisplayFormat.Interior.Color
        Selection.Areas(1)(i).Interior.Color = Selection.Areas(2)(i).DisplayFormat.Interior.Color
        Selection.Areas(2)(i).Interior.Color = tempColor
    Next i

End Sub
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.