2011-03-14 16:18:46 +0000 2011-03-14 16:18:46 +0000
42
42

Обмен содержимым ячеек в Excel?

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

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

Ответы (8)

47
47
47
2013-01-15 19:12:17 +0000

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

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

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

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

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

  4. Когда на экране появится “工”, отпустите мышь.

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

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

18
18
18
2012-11-22 09:20:50 +0000

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

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

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

15
15
15
2011-03-14 16:44:48 +0000

Под простотой я подразумеваю либо сочетание клавиш, либо пункт меню, без необходимости копирования во временные ячейки, либо написание скриптов 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
5
5
5
2011-03-24 20:24:16 +0000

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

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

2
2
2
2014-01-05 19:25:48 +0000

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

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

0
0
0
2018-11-22 04:53:36 +0000
  • Выберите нижнюю ячейку, которую вы хотите поменять местами
  • Нажмите Ctrl+X и перейдите в ячейку, которую вы хотите поменять местами
  • Нажмите Ctrl+Shift+=

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

0
0
0
2018-01-08 03:00:45 +0000

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

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
0
0
2014-12-05 17:19:03 +0000

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

Похожие вопросы

6
13
9
10
15