Поменять местами содержимое ячеек в Excel?

Есть ли простой способ поменять местами содержимое двух ячеек в Microsoft Excel?

Под простым я подразумеваю либо сочетание клавиш, либо пункт меню, без необходимости копирования во временные ячейки или писать сценарии VBA или что-то в этом роде. Другими словами, я ищу способ просто выбрать две ячейки и щелкнуть какой-либо пункт меню или нажать комбинацию клавиш, которая поменяет их содержимое местами. Конечно, должен быть способ сделать это?


От: http://www.extendoffice.com/documents/excel/860-excel-swap-contents -of-two-cells.html

Иногда нужно поменять местами две соседние ячейки. Мы легко можем сделать это вручную. Посмотрите на следующий снимок экрана. Я хочу поменять местами ячейки A4 и B4, сделайте следующее:

  1. Выберите ячейку, которую вы хотите поменять местами. В этом примере выберите ячейку A4.

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

  3. Затем перетащите курсор к правой границе ячейки B4.

  4. Когда отображается « 工 », отпустите мышь.

  5. И два содержимого ячеек поменялись местами.

С помощью этого метода мы также можем поменять местами две соседние строки или столбцы.


19

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

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

Обратите внимание, что вы можете использовать ту же процедуру для замены целых соседних строк или столбцов.

Поделиться
Улучшите этот ответ
отредактировано ноя 22 ’18 в 06:55
Scott
18.6k1212 золотых знаков5757 серебряных знаков104104 бронзовых знака
ответил 22 ноября ’12 в 9:20
  • 1
    Отлично. Это именно то, что я искал. Возможность использовать сочетания клавиш и возможность работать с несколькими ячейками намного быстрее. — Энтони Геогеган, 02 ноя. 2015, в 9:36
  • У меня это не работает. И клетки соседствуют друг с другом. Не знаю, почему это не работает. Есть ли какое-то конкретное объяснение этой команде? — Smart Humanism 30 ноя. ’18 в 20:07
добавить комментарий |

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

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

Обратите внимание можно использовать ту же процедуру для замены целых соседних строк или столбцов.


15

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

Зачем налагать это ограничение? Создание макроса делает это тривиальным. Насколько я знаю, по-другому нельзя. Вы можете назначить макрос кнопке или горячей клавише.

  Sub Swap () If Selection.Count  2 Then MsgBox «Выберите 2 ячейки (только) для обмена».  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  

Поделиться
Улучшить этот ответ
отредактировано 31 августа 2019 г. в 15:58
phuclv
17.9k77 золотых значков7070 серебра 152152 бронзовых знака
ответ дан 14 марта ’11 в 19: 44
  • 4
    Я не эксперт VBA и у меня нет ни времени, ни желания стать одним. Я также часто использую много разных компьютеров. Было бы неплохо, если бы свопинг был доступен на каждом компьютере, который я использую для Excel, без необходимости искать код макроса VBA, который это делает, чтобы я мог привязать его к горячей клавише. — Дэн Молдинг, 14 марта 2011 г., в 19:16
  • 3
    @Dan Было бы неплохо, если бы каждый мог встроить в Excel свои домашние функции, но тогда это превратилось бы в еще более раздутый беспорядок, чем он есть. В Excel есть макроязык для автоматизации повторяющихся задач, подобных этой. Я разместил код, найденный через поиск Google. Вам не быть экспертом. — ghoppe, 14 марта 2011 г., в 19:29
  • +1 vba — это способ, которым excel позволяет вам добавлять функции для домашних животных. также есть способы сделать эту vba доступной на многих компьютерах, только для вас или для всех (например, личная книга или надстройки) — Крис Нилсен, 18 марта 2011 г., 23:34
  • 9
    Я бы вряд ли назвал замену содержимого двух ячеек/строк/столбцов домашнее животное функция. — Николай 17 февраля 2012, 11:35
  • 5
    @ghoppe Может быть, это не обязательно, но если вы быстро выполните поиск по запросу «поменять местами содержимое двух ячеек в excel» (который у вас уже есть), вполне очевидно, что мы с Дэном вряд ли единственные, кто заботиться об этой функции. — Николай 21 фев. ’12 в 13:57
| показать 1 дополнительный комментарий

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

Зачем налагать это ограничение? Создание макроса делает это тривиальным. Насколько я знаю, по-другому нельзя. Вы можете назначить макрос кнопке или горячей клавише.

  Sub Swap () If Selection.Count  2 Then MsgBox «Выберите 2 ячейки (только) для обмена».  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  

5

Нет. Невозможно поменять местами содержимое двух ячеек в Excel, не написав для этого свой собственный макрос.

EDIT: Похоже, теперь может быть простой способ поменять местами содержимое ячеек в большем количестве последние версии Excel, поэтому этот ответ, вероятно, уже устарел.

Поделиться
Улучшите это ответ
изменён 10 сен ’15 в 18:22
ответил 24 марта ’11 в 20:24
  • это утверждение неверно. См. Ответ пользователя 190216. — Карл Рукки, 10 сен., 18:08
  • @KarlRookey Первоначально в этом ответе говорилось (и так и остается), что ячейки должны быть смежными. Похоже, это уже не так для более поздних версий Excel. Если это так, то да, теперь есть лучший ответ. Благодаря! — Дэн Молдинг, 10 сен. 2015, 18:20
  • Спасибо, что сказали это. Все приведенные здесь примеры имеют побочный эффект замены двух ячеек (если они смежные), но не «меняют местами ячейки», а «сдвигают» ячейки. — Питер Ричи, 15 июня ’19 в 19:10
добавить комментарий |

Нет. Невозможно поменять местами содержимое двух ячеек в Excel, не написав для этого свой собственный макрос.

EDIT: Похоже, теперь может быть простой способ поменять местами содержимое ячеек в большем количестве последние версии Excel, поэтому этот ответ, вероятно, уже устарел.


2

Выберите первый набор ячеек для обмена и нажмите ctrl + x :

Выбрать ячейки ПОСЛЕ тех, которые вы хотите поменять местами, и нажмите ctrl + + .

Поделиться
Улучшить этот ответ
отредактировано 5 января ’14 в 20:02
Ƭᴇcʜιᴇ007
107k1717 золотых значков18018 0 серебряных знаков244 244 бронзовых знака
5 янв. # div>
  • 1
    Это работает, только если ячейки смежные. В противном случае все сдвигается к целевым ячейкам.. — tumchaaditya 5 янв. ’14 в 19:45
добавить комментарий |

Выберите первый набор ячеек для обмена и нажмите ctrl + x :

Выберите ячейки, ПОСЛЕ тех, с которыми вы хотите поменяться местами, и нажмите ctrl + + .


0

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

Поделиться
Улучшить этот ответ
ответил 5 дек. ’14 в 17:19
  • 2
    Это стандартная функция Mac? Автор вопроса не уточнил, на какой платформе они находятся. Я не уверен, что в стандартном буфере обмена во всех версиях Windows содержится более одного элемента, но для обеспечения этой функции легко доступны бесплатные утилиты (и сочетания клавиш могут отличаться). Не могли бы вы расширить свой ответ, чтобы сделать его более исчерпывающим для этого подхода? — fixer1234 05 дек. ’14 в 18:14
  • Я пробовал это в Windows, но не мог понять. Я даже попробовал вариант ctrl + shift + p, который обычно работает в Visual Studio, для вставки из кольца буфера обмена. — jpierson 14 июл. ’17 в 1:21
добавить комментарий |

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


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

своп будет выполнен

Поделиться
Улучшите этот ответ
отредактировано 31 августа 1919 в 15:59
phuclv
17. 4k77 золотых знаков7070 серебряных знаков152152 бронзовых знака
ответ дан 22 ноя ’18 в 4:53
  • Это в точности то же самое, что и ответ Йонаса Хайдельберга из ( точно! ) шесть лет назад, и фактически то же самое, что и ответ user287020. — Скотт 22 нояб., 18:25
добавить комментарий |

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

Обмен будет выполнен


0

Я прочитал этот пост, но на самом деле мне нужен макрос для замены полных диапазонов. Кроме того, мне нужно было поменять местами цвета. Немного изменил изначально опубликованный макрос, это может быть полезно для кого-то.

  Sub Swap () If Selection.Areas.Count  2 Then MsgBox "Выберите 2 диапазона ячеек (только  ) менять местами."  Exit Sub End If If Selection.Areas (1) .Count  Selection.Areas (2) .Count Then MsgBox «Две области должны быть одинакового размера» Exit Sub End If 'С этим циклом for мы проходим каждую ячейку 1  на 1 For i = 1 To Selection.Areas (1) .Count 'Обмен значениями temp = Selection.Areas (1) (i) Selection.Areas (1) (i) = Selection.Areas (2) (i) Selection.  Области (2) (i) = temp 'Замена цвета 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 iEnd Sub  

Поделиться
Улучшить этот ответ
отредактировано 31 августа 2019 г. в 15:59
phuclv
Золотой значок 17.9k77 es7070 серебряных знаков152152 бронзовых знака
ответил 08 янв. # div>
добавить комментарий |

Я прочитал этот пост, но на самом деле мне нужен макрос для замены полных диапазонов. Кроме того, мне нужно было поменять местами цвета. Немного изменил изначально опубликованный макрос, это может быть полезно для кого-то.

  Sub Swap () If Selection.Areas.Count  2 Then MsgBox "Выберите 2 диапазона ячеек (только  ) менять местами."  Exit Sub End If If Selection.Areas (1) .Count  Selection.Areas (2) .Count Then MsgBox «Две области должны быть одинакового размера» Exit Sub End If 'С этим циклом for мы проходим каждую ячейку 1  на 1 For i = 1 To Selection.Areas (1) .Count 'Обмен значениями temp = Selection.Areas (1) (i) Selection.Areas (1) (i) = Selection.Areas (2) (i) Selection.  Области (2) (i) = temp 'Замена цвета 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 iEnd Sub  

Оцените статью
Botgadget.ru
Добавить комментарий