สลับเนื้อหาเซลล์ใน Excel หรือไม่


42

มีวิธีที่ง่ายในการสลับเนื้อหาของสองเซลล์ใน Microsoft Excel หรือไม่

โดยง่ายฉันหมายถึงแป้นพิมพ์ลัดหรือรายการเมนูโดยไม่เกี่ยวข้องกับการคัดลอกไปยังเซลล์ชั่วคราวหรือเขียนสคริปต์ VBA หรืออะไรทำนองนั้น กล่าวอีกนัยหนึ่งฉันกำลังมองหาวิธีเพียงแค่เลือกสองเซลล์และคลิกที่รายการเมนูบางอย่างหรือกดแป้นผสมบางอย่างที่จะสลับเนื้อหาของพวกเขา แน่นอนว่าต้องมีวิธีที่จะทำเช่นนี้?


ดูเหมือนว่าจะมีการนำการเรียงลำดับมาใช้อย่างเฉพาะเจาะจงและหากยังไม่ได้มีอยู่ในตัวเลือกการเรียงลำดับขั้นสูงฉันจะแปลกใจถ้าคุณสามารถหาได้จากที่อื่นในฐานะที่ไม่ใช่ VBA
drapkin11

คำตอบ:


47

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

บางครั้งมีเซลล์ที่อยู่ติดกันสองเซลล์ที่ต้องสลับ เราสามารถทำได้ด้วยตนเองอย่างง่ายดาย ดูภาพหน้าจอต่อไปนี้ฉันต้องการสลับเซลล์ A4 และ B4 โปรดทำดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

  1. เลือกเซลล์ที่คุณต้องการสลับ ในตัวอย่างนี้เลือกเซลล์ A4

  2. กดปุ่มShiftแล้ววางเคอร์เซอร์ที่ขอบด้านขวา

  3. จากนั้นลากเคอร์เซอร์ไปที่ขอบด้านขวาของเซลล์ B4

  4. เมื่อมีข้อความ“ 工” ปรากฏขึ้นให้ปล่อยเมาส์

  5. และเนื้อหาของเซลล์ทั้งสองได้รับการแลกเปลี่ยน

ป้อนคำอธิบายรูปภาพที่นี่

ด้วยวิธีนี้เรายังสามารถสลับสองแถวหรือคอลัมน์ที่อยู่ติดกัน


8
นี่ควรเป็น anser ที่เลือกสำหรับฉัน ขอขอบคุณ!
Nam G VU

2
มันไม่ทำงานสำหรับฉัน มันแทรกเซลล์ว่างระหว่าง 2 เซลล์นั้น
phuclv

2
ใช้งานได้เฉพาะกับเซลล์ที่อยู่ติดกันซึ่งไม่ใช่คำถามเดิมที่ถาม
jpierson

สิ่งนี้ใช้ไม่ได้กับฉันใน Excel 2010 - มันกะพริบเร็ว แต่เนื้อหาของเซลล์ยังคงไม่เปลี่ยนแปลง
Hashim

@phuclv ฉันมีปัญหาแบบเดียวกับคุณก่อนที่ฉันจะรู้ว่าสำหรับขั้นตอนที่ 2 ฉันวางเคอร์เซอร์ของเมาส์ไว้ที่ขอบด้านล่างขวาแทนที่จะเป็นเส้นขอบกลางด้านขวา
ริชาร์ด

17

สำหรับกรณีเฉพาะของที่อยู่ติดกันขนาดเดียวกันช่วงสี่เหลี่ยมคุณสามารถใช้วิธีการอธิบายในคำตอบนี้ไปคำถามที่คล้ายกัน

  1. เลือกช่วงขวาหรือล่าง
  2. กดCtrl+X
  3. เลือกช่วงที่อยู่ติดกัน (เช่นด้านบนหรือด้านซ้ายโดยตรง)
  4. กดCtrl+ +( +โดยปกติจะอยู่เหนือ=คีย์ดังนั้นจึงแปลเป็นCtrl+ Shift+ =)

หมายเหตุคุณสามารถใช้กระบวนงานเดียวกันเพื่อสลับแถวหรือคอลัมน์ที่อยู่ติดกันทั้งหมด


1
ยอดเยี่ยม นี่คือสิ่งที่ฉันกำลังมองหา ความสามารถในการใช้แป้นพิมพ์ลัดและความสามารถในการทำงานกับหลาย ๆ เซลล์นั้นเร็วขึ้นมาก
Anthony G - ความยุติธรรมสำหรับโมนิก้า

มันไม่ได้ผลสำหรับฉัน และเซลล์อยู่ติดกัน ฉันไม่รู้ว่าทำไมมันถึงไม่ทำงาน มีคำอธิบายเฉพาะสำหรับคำสั่งนี้หรือไม่?
มนุษยนิยมสมาร์ท

15

โดยง่ายฉันหมายถึงแป้นพิมพ์ลัดหรือรายการเมนูโดยไม่เกี่ยวข้องกับการคัดลอกไปยังเซลล์ชั่วคราวหรือเขียนสคริปต์ 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     

4
ฉันไม่ใช่ผู้เชี่ยวชาญ VBA และไม่มีเวลาหรือความชอบที่จะเป็นหนึ่งเดียว ฉันมักจะใช้คอมพิวเตอร์หลายเครื่อง มันจะเป็นการดีถ้ามีการสลับการใช้งานบนคอมพิวเตอร์ทุกเครื่องที่ฉันใช้สำหรับ Excel โดยไม่ต้องค้นหาโค้ดสำหรับแมโคร VBA ที่ทำเช่นนั้นเพื่อที่ฉันจะได้ผูกมันไว้กับฮอตคีย์
Dan Molding

3
@ แดนมันจะดีถ้าทุกคนสามารถมีฟังก์ชั่นสัตว์เลี้ยงของพวกเขาอยู่ใน Excel แต่แล้วมันจะกลายเป็นระเบียบมากขึ้นกว่าที่เป็นอยู่แล้ว มีเหตุผลที่ Excel มีภาษามาโครเพื่อทำงานซ้ำ ๆ โดยอัตโนมัติเช่นนี้ ฉันโพสต์รหัสที่พบผ่านการค้นหาของ Google คุณไม่จำเป็นต้องเป็นผู้เชี่ยวชาญ
ghoppe

+1 vba คือวิธีที่ excel ให้คุณเพิ่มฟังก์ชันสัตว์เลี้ยงของคุณ นอกจากนี้ยังมีวิธีการทำที่ VBA ฟังเพลงออนไลน์บนเครื่องคอมพิวเตอร์จำนวนมากจะมีเพียงตัวเองหรือทุก (เช่นสมุดงานส่วนบุคคลหรือ addins)
คริส Neilsen

9
ฉันแทบจะไม่เรียกการแลกเปลี่ยนเนื้อหาของสองเซลล์ / แถว / คอลัมน์เพื่อฟังก์ชั่นสัตว์เลี้ยง
Nicolai

5
@ghoppe อาจไม่จำเป็น แต่ถ้าคุณค้นหาอย่างรวดเร็วเกี่ยวกับ "สลับเนื้อหาของสองเซลล์ใน excel" (ซึ่งคุณมีอยู่แล้ว) มันค่อนข้างชัดเจนว่า Dan และฉันไม่ค่อยเป็นคนเดียวที่สนใจคุณสมบัตินี้
Nicolai

5

ไม่ไม่มีวิธีการสลับเนื้อหาของเซลล์สองเซลล์ใน Excel โดยไม่ต้องเขียนแมโครของคุณเองเพื่อทำมัน

แก้ไข: ดูเหมือนว่าตอนนี้อาจเป็นวิธีที่ง่ายในการสลับเนื้อหาของเซลล์ใน Excel เวอร์ชันที่ใหม่กว่าดังนั้นคำตอบนี้อาจล้าสมัยไปแล้ว


คำสั่งนี้ไม่ถูกต้อง ดูคำตอบจากผู้ใช้ 190216
Karl Rookey

@KarlRookey ในขั้นต้นคำตอบที่ระบุไว้ (และยังคงเป็นเช่นนั้น) ที่เซลล์ต้องอยู่ติดกัน ดูเหมือนว่านี่จะไม่เป็นจริงสำหรับ Excel รุ่นล่าสุดอีกต่อไป หากเป็นเช่นนั้นใช่มีคำตอบที่ดีกว่านี้แล้ว ขอบคุณ!
Dan Molding

ขอบคุณที่พูดแบบนี้ ตัวอย่างทั้งหมดที่นี่มีผลข้างเคียงของการสลับสองเซลล์ (หากอยู่ติดกัน) แต่ไม่ได้ "สลับเซลล์" แต่จะเป็นการ "เลื่อน" เซลล์
Peter Ritchie

2

เลือกเซลล์ชุดแรกที่จะสลับและกดctrl+ x:

เลือกเซลล์ข้างคนที่คุณต้องการแลกเปลี่ยนกับการตี+ctrl+


1
สิ่งนี้จะทำงานได้ก็ต่อเมื่อเซลล์อยู่ติดกัน มิฉะนั้นสิ่งทั้งหมดจะถูกเลื่อนไปใกล้เซลล์เป้าหมาย
tumchaaditya

0

คุณสามารถวางรายการในคลิปบอร์ดได้มากถึง 25 รายการดังนั้นจึงง่ายต่อการสลับโดยใช้แท็บ ctr + หรือ cmd + แท็บ mac


2
นี่เป็นคุณสมบัติมาตรฐานของ Mac หรือไม่ ผู้เขียนคำถามไม่ได้ระบุว่าเป็นแพลตฟอร์มใด ฉันไม่แน่ใจว่าคลิปบอร์ดมาตรฐานใน Windows ทุกรุ่นมีรายการมากกว่าหนึ่งรายการหรือไม่ แต่ยูทิลิตี้ฟรีพร้อมให้ใช้งานได้ (และแป้นพิมพ์ลัดอาจแตกต่างกัน) คุณสามารถขยายคำตอบเพื่อให้ครอบคลุมมากขึ้นสำหรับวิธีการนี้หรือไม่?
fixer1234

ฉันลองสิ่งนี้บน Windows แต่ไม่สามารถเข้าใจได้ ฉันลองตัวเลือก ctrl + shift + p ซึ่งปกติแล้วใช้งานได้ใน Visual Studio เพื่อวางออกจากวงแหวนคลิปบอร์ด
jpierson

0
  • เลือกเซลล์ด้านล่างที่คุณต้องการสลับ
  • กดCtrl+ Xและไปที่เซลล์ที่คุณต้องการสลับ
  • กดCtrl+ Shift+=

การแลกเปลี่ยนจะดำเนินการ


ตรงนี้เป็นเช่นเดียวกับคำตอบที่โจนาสไฮเดลเบิร์กจาก ( ตรง! ) หกปีที่ผ่านมาและมีประสิทธิภาพเช่นเดียวกับคำตอบของ user287020
สกอตต์

0

ฉันอ่านโพสต์นี้ แต่จำเป็นต้องมีมาโครจริงๆในการสลับช่วงเต็ม นอกจากนี้ฉันต้องสลับสี ดัดแปลงมาโครที่โพสต์ แต่แรกแล้วเล็กน้อยอาจเป็นประโยชน์กับบางคน

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.