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


42

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 a escrita de scripts VBA ou qualquer coisa assim. Em outras palavras, estou procurando uma maneira de selecionar apenas duas células e clicar em algum item do menu ou pressionar alguma combinação de teclas que troque seu conteúdo. Certamente, tem que haver uma maneira de fazer isso?


Esta parece ser uma aplicação muito específico de uma espécie, e se não já presente nas opções de classificação avançada, eu ficaria surpreso se você pode encontrá-lo em outro lugar, como um não-VBA solução
drapkin11

Respostas:


47

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

Às vezes, há duas células adjacentes que precisam ser trocadas. Podemos fazer isso manualmente com facilidade. Olhe para a captura de tela a seguir, quero trocar as células A4 e B4, faça o seguinte:

insira a descrição da imagem aqui

  1. Selecione a célula que você deseja trocar. Neste exemplo, selecione a célula A4.

  2. Pressione a tecla Shift e coloque o cursor na borda direita.

  3. Em seguida, arraste o cursor para a borda direita da célula B4.

  4. Quando aparecer “工”, solte o mouse.

  5. E o conteúdo das duas células foi trocado.

insira a descrição da imagem aqui

Com esse método, também podemos trocar duas linhas ou colunas adjacentes.


8
Este deve ser o anser selecionado para mim. Obrigado!
Nam G VU

2
Isso não funciona para mim. É apenas inserir células vazias entre essas células 2
phuclv

2
Isso funciona apenas para células adjacentes, o que não é o que a pergunta original fazia.
jpierson

Isso não funciona para mim no Excel 2010 - ele pisca rapidamente, mas o conteúdo das células permanece inalterado.
Hashim 12/10

@phuclv Eu tive o mesmo problema que você antes de perceber que, para a etapa 2, eu estava colocando o cursor do mouse na borda inferior direita, em vez da borda direita central.
Richard

17

Para o caso específico de intervalos retangulares do mesmo tamanho adjacentes , você pode usar o método descrito nesta resposta para uma pergunta semelhante .

  1. Selecione a faixa direita ou inferior
  2. Pressione Ctrl+X
  3. Selecione o intervalo adjacente (ou seja, diretamente acima ou à esquerda)
  4. Pressione Ctrl+ +( +geralmente está acima da =tecla, então isso se traduz em Ctrl+ Shift+ =)

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


1
Excelente. Era exatamente isso que eu estava procurando. Ser capaz de usar atalhos de teclado e operar em várias células é muito mais rápido.
Anthony G - justiça para Monica

Isso não funciona para mim. E as células são adjacentes uma à outra. Não sei por que isso não funciona. Existe alguma explicação específica para esse comando?
Smart Humanism

15

Por fácil, quero dizer um atalho de teclado ou item de menu, sem envolver a cópia para células temporárias ou a escrita de scripts VBA ou qualquer coisa assim. Estou procurando uma maneira de selecionar apenas duas células e clicar em algum item do menu ou pressionar alguma combinação de teclas que troque seu conteúdo.

Por que impor essa restrição? Criar uma macro torna isso trivial. Até onde eu sei, isso 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     

4
Não sou especialista em VBA e não tenho tempo nem vontade de me tornar um. Eu também uso frequentemente muitos computadores diferentes. Seria bom ter a troca disponível em todos os computadores que eu uso para o Excel, sem precisar procurar o código da macro VBA que faz isso, para que eu possa vinculá-lo a uma tecla de atalho.
Dan Molding

3
@ Dan Seria bom se todos pudessem ter sua funcionalidade de estimação incorporada no Excel, mas isso se tornaria uma bagunça ainda mais inchada do que já é. Há uma razão pela qual o Excel possui uma linguagem de macro para automatizar tarefas repetitivas como essa. Eu publiquei o código encontrado através de uma pesquisa no google. Você não precisa ser um especialista.
ghoppe

+1 vba é a maneira como o excel permite que você adicione suas funções de estimação. há também maneiras de fazer que o VBA disponível em muitos computadores, apenas para si mesmo ou para todos (por exemplo pasta de trabalho pessoal, ou suplementos)
chris Neilsen

9
Eu dificilmente chamaria a troca do conteúdo de duas células / linhas / colunas para ser uma função de estimação.
Nicolai

5
@ghoppe Talvez não seja essencial, mas se você fizer uma pesquisa rápida em "trocar o conteúdo de duas células no excel" (que você já possui), é óbvio que Dan e eu dificilmente somos os únicos que se importam com esse recurso.
Nicolai

5

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

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


esta afirmação está incorreta. Veja a resposta do usuário190216.
Karl Rookey

@KarlRookey Originalmente, essa resposta dizia (e meio que continua sendo) que as células devem estar adjacentes. Parece que isso pode não ser mais verdadeiro para versões mais recentes do Excel. Se for esse o caso, então, sim, agora há uma resposta melhor. Obrigado!
Dan Molding

Obrigado por dizer isso. Todos os exemplos aqui têm o efeito colateral de trocar duas células (se forem adjacentes), mas não "troca de células", mas "muda" as células.
Peter Ritchie

2

Selecione o primeiro conjunto de células a ser trocado e pressione ctrl+ x:

Selecione as células AO lado das que você deseja trocar e pressione ctrl+ +.


1
Isso funciona apenas se as células estiverem adjacentes. Caso contrário, todo o material é deslocado para perto das células-alvo.
tumchaaditya

0

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


2
Esse é um recurso padrão do Mac? O autor da pergunta não especificou em que plataforma eles estão. Não tenho certeza se a área de transferência padrão em todas as versões do Windows contém mais de um item, mas utilitários gratuitos estão prontamente disponíveis para fornecer essa funcionalidade (e os atalhos do teclado podem variar). Você poderia expandir sua resposta para torná-la mais abrangente para essa abordagem?
precisa saber é o seguinte

Eu tentei isso no Windows, mas não consegui descobrir. Eu até tentei a opção ctrl + shift + p que normalmente funciona no Visual Studio para colar fora do anel da área de transferência.
jpierson


0

Eu li este post, mas realmente precisava de uma macro para trocar intervalos completos. Além disso, eu precisava trocar as cores. Modificada a macro originalmente postada levemente, 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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.