35

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

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

8 ответов8

45

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

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

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

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

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

  4. Когда появится «工», отпустите кнопку мыши.

  5. И содержимое двух ячеек было поменяно местами.

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

14

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

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

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

14

Под простотой я подразумеваю либо сочетание клавиш, либо пункт меню, без необходимости копирования во временные ячейки, написания сценариев 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

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

РЕДАКТИРОВАТЬ: Похоже, что теперь может быть простой способ поменять содержимое ячеек в более поздних версиях Excel, поэтому этот ответ, вероятно, устарел.

2

Выберите первый набор ячеек, которые нужно поменять местами, и нажмите Ctrl+X:

Выберите ячейки, кроме тех, которые вы хотите поменять местами, и нажмите Ctrl++.

0

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

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
0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .