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

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

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

14
задан Dan Moulding
24.01.2023 3:38 Количество просмотров материала 3383
Распечатать страницу

7 ответов

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

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

enter image description here

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

  2. пресс Shift ключ, и положил курсор на правую границу.

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

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

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

enter image description here

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

42
отвечен user190216 2023-01-25 11:26

под easy я имею в виду либо сочетание клавиш, либо пункт меню, без копирования во временные ячейки или написание 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     
14
отвечен ghoppe 2023-01-25 13:43

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

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

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

12
отвечен Jonas Heidelberg 2023-01-25 16:00

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

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

4
отвечен Dan Moulding 2023-01-25 18:17

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

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

2
отвечен user287020 2023-01-25 20:34

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

0
отвечен Aaron 2023-01-25 22:51

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

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
отвечен Ivo van der Marel 2023-01-26 01:08

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх