Troque o conteúdo da célula no Excel?

33

Existe uma maneira fácil de trocar o conteúdo de duas células no Microsoft Excel?

Por fácil, quero dizer, um atalho de teclado ou item de menu, sem envolver a cópia para células temporárias ou escrever scripts VBA ou qualquer coisa assim. Em outras palavras, estou procurando uma maneira de selecionar apenas duas células e clicar em algum item de menu ou pressionar uma combinação de teclas que trocará seu conteúdo. Certamente, tem que haver uma maneira de fazer isso?

    
por Dan Moulding 14.03.2011 / 17:18

7 respostas

42

De: link

Sometimes, there are two adjoining cells need to be swapped. We can manually do it easily. Look at the following screenshot, I want to swap cell A4 and B4, please do as follows:

enter image description here

  1. Select the cell you want to swap. In this example, select cell A4.

  2. Press Shift key, and put the cursor at the right border.

  3. Then drag the cursor to the right border of cell B4.

  4. When there displays “工”, release the mouse.

  5. And the two cell contents have been swapped.

enter image description here

With this method, we can also swap two adjoining rows or columns.

    
por 15.01.2013 / 20:12
14

By easy, I mean either a keyboard shortcut or menu item, without involving copying to temporary cells or writing VBA scripts or anything like that. I'm looking for a way to just select two cells and click some menu item or press some key combination that will swap their contents.

Por que impor essa restrição? Criar uma macro torna isso trivial. Tanto quanto sei, não pode ser feito de outra maneira. Você pode atribuir a macro a um botão ou tecla de atalho.

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     
    
por 14.03.2011 / 17:44
12

Para o caso específico de células adjacentes , você pode usar o método descrito em essa resposta a uma pergunta semelhante pergunta .

  1. Selecione a célula direita ou inferior
  2. Pressione Ctrl + x
  3. Selecione a célula adjacente (ou seja, diretamente acima ou à esquerda)
  4. Pressione Ctrl + + (o + é geralmente acima da tecla = , então isso se traduz em Ctrl + Shift + = )

Note que você pode usar o mesmo procedimento para trocar linhas ou colunas adjacentes inteiras.

    
por 22.11.2012 / 10:20
4

Não. Não há como trocar o conteúdo de duas células no Excel, sem escrever sua própria macro para fazer isso.

EDIT: Parece que agora pode haver uma maneira fácil de trocar o conteúdo das células em versões mais recentes do Excel, portanto, essa resposta provavelmente está desatualizada.

    
por 24.03.2011 / 21:24
2

Selecione o primeiro conjunto de células a serem trocadas e pressione ctrl + x :

Selecione as células ao lado daquelas com as quais deseja trocar e pressione ctrl + + .

    
por 05.01.2014 / 20:25
0

Você pode colar até 25 itens na área de transferência, para facilitar a troca usando ctr + tab ou cmd + tab mac

    
por 05.12.2014 / 18:19
0

Eu li este post, mas na verdade precisava de uma macro para trocar intervalos completos. Além disso, eu precisava trocar as cores. Modificou ligeiramente a macro originalmente postada, isso pode ser útil para alguém.

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
    
por 08.01.2018 / 04:00