Zamieniać zawartość komórki w programie Excel?


42

Czy istnieje prosty sposób na zamianę zawartości dwóch komórek w programie Microsoft Excel?

Przez łatwość rozumiem skrót klawiaturowy lub element menu, bez konieczności kopiowania do tymczasowych komórek lub pisania skryptów VBA itp. Innymi słowy, szukam sposobu, aby po prostu wybrać dwie komórki i kliknąć jakiś element menu lub nacisnąć kombinację klawiszy, która zamieni ich zawartość. Z pewnością musi być na to sposób?


Wydaje się, że jest to bardzo specyficzna implementacja, a jeśli nie jest już obecna w zaawansowanych opcjach sortowania, byłbym zaskoczony, jeśli można ją znaleźć gdzie indziej, jako rozwiązanie inne niż VBA
drapkin11

Odpowiedzi:


47

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

Czasami trzeba zamienić dwie sąsiednie komórki. Możemy to łatwo zrobić ręcznie. Spójrz na poniższy zrzut ekranu, chcę zamienić komórkę A4 i B4, wykonaj następujące czynności:

wprowadź opis zdjęcia tutaj

  1. Wybierz komórkę, którą chcesz zamienić. W tym przykładzie wybierz komórkę A4.

  2. Naciśnij klawisz Shift i umieść kursor na prawej ramce.

  3. Następnie przeciągnij kursor do prawej krawędzi komórki B4.

  4. Kiedy pojawi się „工”, zwolnij mysz.

  5. I zawartość dwóch komórek została zamieniona.

wprowadź opis zdjęcia tutaj

Za pomocą tej metody możemy również zamienić dwa sąsiednie wiersze lub kolumny.


8
To powinien być dla mnie wybrany anser. Dziękuję Ci!
Nam G VU

2
To nie działa dla mnie. Po prostu wstaw puste komórki między tymi 2 komórkami
phuclv

2
Działa to tylko w przypadku sąsiednich komórek, co nie jest tym, o które pytano w pierwotnym pytaniu.
jpierson

Nie działa to wcale dla mnie w programie Excel 2010 - szybko miga, ale zawartość komórek pozostaje niezmieniona.
Hashim,

@ phuclv Miałem ten sam problem, co ty, zanim zdałem sobie sprawę, że dla kroku 2 umieszczałem kursor myszy na prawym dolnym obramowaniu, a nie na środkowym prawym obramowaniu.
Richard

17

W konkretnym przypadku sąsiadujących zakresów prostokątnych o tej samej wielkości można użyć metody opisanej w tej odpowiedzi na podobne pytanie .

  1. Wybierz prawy lub dolny zakres
  2. Naciśnij Ctrl+X
  3. Wybierz sąsiedni zakres (tj. Bezpośrednio powyżej lub w lewo)
  4. Naciśnij Ctrl+ +( +zwykle znajduje się nad =klawiszem, co przekłada się na Ctrl+ Shift+ =)

Uwaga: możesz użyć tej samej procedury, aby zamienić całe sąsiednie rzędy lub kolumny.


1
Doskonały. Właśnie tego szukałem. Możliwość korzystania ze skrótów klawiaturowych i obsługa wielu komórek jest o wiele szybsza.
Anthony G - sprawiedliwość dla Moniki

To mi nie działa. A komórki sąsiadują ze sobą. Nie wiem, dlaczego to nie działa. Czy jest jakieś szczególne wyjaśnienie tego polecenia?
Smart Humanism

15

Przez łatwość rozumiem skrót klawiaturowy lub element menu, bez konieczności kopiowania do tymczasowych komórek lub pisania skryptów VBA itp. Szukam sposobu, aby po prostu wybrać dwie komórki i kliknąć jakiś element menu lub nacisnąć kombinację klawiszy, która zamieni ich zawartość.

Po co nakładać to ograniczenie? Utworzenie makra czyni to banalnym. O ile mi wiadomo, nie można tego zrobić w żaden inny sposób. Możesz przypisać makro do przycisku lub skrótu.

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
Nie jestem ekspertem od VBA i nie mam ani czasu, ani ochoty, aby nim zostać. Często też używam wielu różnych komputerów. Byłoby miło mieć możliwość wymiany na każdym komputerze, którego używam dla Excela, bez konieczności wyszukiwania kodu dla makra VBA, które to robi, aby móc powiązać go ze skrótem.
Dan Molding

3
@ Dan Byłoby miło, gdyby każdy mógł mieć wbudowaną funkcjonalność swojego zwierzaka w Excelu, ale wtedy stałby się jeszcze bardziej rozdętym bałaganem niż jest już. Istnieje powód, dla którego program Excel ma język makr do automatyzacji powtarzających się zadań takich jak ten. Opublikowałem kod znaleziony podczas wyszukiwania w Google. Nie musisz być ekspertem.
ghoppe

+1 vba to sposób, w jaki excel pozwala dodawać funkcje twojego zwierzaka. istnieją również sposoby, aby udostępnić VBA na wielu komputerach, tylko dla siebie lub dla wszystkich (np. osobisty skoroszyt lub dodatki)
Chris Neilsen

9
Z trudem nazwałbym zamianę zawartości dwóch komórek / wierszy / kolumn funkcją zwierząt domowych.
Nicolai

5
@ghoppe Być może nie jest to konieczne, ale jeśli szybko przeszukujesz „zamień zawartość dwóch komórek w programie Excel” (co już masz), to całkiem oczywiste, że Dan i ja nie jesteśmy jedynymi, którzy dbają o tę funkcję.
Nicolai

5

Nie. Nie ma możliwości zamiany zawartości dwóch komórek w programie Excel bez napisania własnego makra.

EDYCJA: Wygląda na to, że może być teraz łatwy sposób zamiany zawartości komórki w nowszych wersjach programu Excel, więc ta odpowiedź jest prawdopodobnie nieaktualna.


to stwierdzenie jest niepoprawne. Zobacz odpowiedź od user190216.
Karl Rookey,

@KarlRookey Pierwotnie odpowiedź brzmiała (i nadal tak jest), że komórki muszą sąsiadować. Wygląda na to, że może to już nie być prawdą w przypadku nowszych wersji programu Excel. Jeśli tak jest, to tak, jest teraz lepsza odpowiedź. Dzięki!
Dan Molding,

Dzięki, że to powiedziałeś. Wszystkie przykłady tutaj powodują efekt uboczny zamiany dwóch komórek (jeśli są one sąsiadujące), ale nie „zamieniają komórek”, lecz „przesuwają” komórki.
Peter Ritchie

2

Wybierz pierwszy zestaw komórek do zamiany i naciśnij ctrl+ x:

Wybierz komórki POZA tymi, które chcesz zamienić i naciśnij ctrl+ +.


1
Działa to tylko wtedy, gdy komórki sąsiadują. W przeciwnym razie cały materiał zostanie przesunięty w pobliżu komórek docelowych.
tumchaaditya

0

Możesz wkleić do schowka do 25 elementów, dzięki czemu można je łatwo zamieniać za pomocą klawiszy Ctr + Tab lub cmd + Tab Mac


2
Czy to standardowa funkcja komputera Mac? Autor pytania nie określił, na jakiej platformie się znajdują. Nie jestem pewien, czy standardowy schowek we wszystkich wersjach systemu Windows zawiera więcej niż jeden element, ale dostępne są bezpłatne narzędzia zapewniające tę funkcjonalność (a skróty klawiaturowe mogą się różnić). Czy możesz rozszerzyć swoją odpowiedź, aby uczynić ją bardziej kompleksową dla tego podejścia?
fixer1234,

Próbowałem tego na Windowsie, ale nie mogłem tego rozgryźć. Próbowałem nawet opcji ctrl + shift + p, która normalnie działa w Visual Studio, aby wkleić z pierścienia schowka.
jpierson


0

Przeczytałem ten post, ale tak naprawdę potrzebowałem makra do zamiany pełnych zakresów. Ponadto musiałem zamienić kolory. Lekko zmodyfikowałem pierwotnie opublikowane makro, może to być przydatne dla kogoś.

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.