VBA เพื่อจัดเรียงคอลัมน์ใน Excel (4 วิธี)

  • แบ่งปันสิ่งนี้
Hugh West

หากต้องการจัดเรียงใน Excel ด้วย VBA คุณต้องใช้เมธอด Range.Sort ในบทความนี้ เราจะแสดงวิธีการ จัดเรียงคอลัมน์ ใน Excel ด้วยเมธอด Range.Sort ของ VBA .

ดาวน์โหลดสมุดงาน

คุณสามารถดาวน์โหลดสมุดงาน Excel แบบฝึกหัดได้ฟรีจากที่นี่

จัดเรียงคอลัมน์ด้วย VBA.xlsm

วิธีการ

Range.Sort ใน Excel VBA

Range.Sort ใน VBA เรียงลำดับช่วงของค่าใน Excel ที่นี่ ช่วง เป็นตัวแปรวัตถุที่ระบุช่วงของเซลล์ที่เราต้องการ เรียงลำดับจากน้อยไปมากหรือจากมากไปน้อย

ด้านล่างนี้คือพารามิเตอร์ที่คุณจำเป็นต้องทราบ เกี่ยวกับการทำงานด้วยวิธีนี้

พารามิเตอร์ จำเป็น/ ไม่บังคับ ประเภทข้อมูล คำอธิบาย
คีย์ ไม่บังคับ ตัวแปร ระบุช่วงหรือคอลัมน์ที่มีค่า จะถูกจัดเรียง
Order Optional XlSortOrder ระบุลำดับที่จะทำการเรียงลำดับ
  • xlAscending = เพื่อเรียงลำดับจากน้อยไปหามาก
  • xlDescending = เพื่อเรียงลำดับจากมากไปหาน้อย
ส่วนหัว ไม่บังคับ XlYesNoGuess ระบุว่าแถวแรกมีส่วนหัวหรือไม่ .
  • xlNo = เมื่อคอลัมน์ไม่มีส่วนหัว ค่าเริ่มต้น
  • xlใช่ = เมื่อคอลัมน์มีส่วนหัว
  • xlGuess = เพื่อให้ Excel กำหนดส่วนหัว

4 วิธีการในการปรับใช้ VBA เพื่อจัดเรียงคอลัมน์ใน Excel

ในส่วนนี้ คุณจะทราบวิธีการ จัดเรียงคอลัมน์เดียวที่มีและไม่มีส่วนหัว , หลายคอลัมน์ด้วย และไม่มีส่วนหัว และวิธีการ จัดเรียงโดยดับเบิลคลิกที่ส่วนหัวในคอลัมน์ ใน Excel

1. ฝัง VBA เพื่อจัดเรียงคอลัมน์เดียวโดยไม่มีส่วนหัวใน Excel

หากคุณต้องการ จัดเรียงคอลัมน์เดียว ในแผ่นงาน Excel ของคุณด้วยโค้ด VBA ให้ทำตาม ขั้นตอนด้านล่าง

นี่คือคอลัมน์ของเราที่เราจะจัดเรียงด้วยรหัส VBA

ขั้นตอน:

  • กด Alt + F11 บนแป้นพิมพ์หรือไปที่แท็บ ผู้พัฒนา -> Visual Basic เพื่อเปิด Visual Basic Editor .

  • ในหน้าต่างรหัสป๊อปอัป จากแถบเมนู คลิก แทรก -> โมดูล .

  • คัดลอกโค้ดต่อไปนี้และวางลงในหน้าต่างโค้ด
2865

โค้ดของคุณ พร้อมที่จะเรียกใช้แล้ว

ที่นี่

  • Key1:=Range(“B5”) → ระบุ B5 เพื่อให้โค้ดทราบว่าจะเรียงลำดับคอลัมน์ใด
  • Order1:=xlAscending → ระบุลำดับเป็น xlAscending เพื่อเรียงลำดับคอลัมน์จากน้อยไปหามาก หากคุณต้องการเรียงลำดับคอลัมน์จากมากไปน้อย ให้เขียน xlDescending แทน
  • Header:= xlNo →เนื่องจากคอลัมน์ของเราไม่มีส่วนหัว เราจึงระบุด้วยตัวเลือก xlNo

  • กด F5 บนแป้นพิมพ์หรือจากแถบเมนู เลือก เรียกใช้ -> เรียกใช้ Sub/UserForm คุณยังสามารถคลิกที่ ไอคอนเล่นขนาดเล็ก ในแถบเมนูย่อยเพื่อเรียกใช้มาโคร

คุณจะเห็นว่า ขณะนี้คอลัมน์ เรียงลำดับจากน้อยไปมาก .

โปรดสังเกตว่าที่นี่เราได้กำหนดช่วงข้อมูลด้วยตนเองเป็น Range(“B5:B15” ) .

หากคุณต้องการเปลี่ยนแปลงข้อมูลโดยการเพิ่มหรือลบค่า คุณสามารถใช้โค้ดต่อไปนี้ซึ่งจะอัปเดตโดยอัตโนมัติตามเซลล์ในชุดข้อมูล

4036

โปรดสังเกตว่า ของการกำหนดช่วงด้วยตนเองโดย Range(“B5:B15”) เราได้เขียน Range( “B5”, Range(“B5”) End(xlDown)) .

การดำเนินการนี้จะจัดเรียงคอลัมน์ตามเซลล์ที่เติมข้อมูลล่าสุดติดต่อกัน หากมีเซลล์ว่าง ข้อมูลจะถูกพิจารณาจนถึงเซลล์ว่างเซลล์แรกเท่านั้น

อ่านเพิ่มเติม: VBA เพื่อจัดเรียงตารางใน Excel (4 วิธี)

2. แทรกมาโคร VBA เพื่อจัดเรียงคอลัมน์เดียวที่มีส่วนหัว

ในส่วนก่อนหน้านี้ เรามีชุดข้อมูลของคอลัมน์เดียวที่ไม่มีส่วนหัว แต่ตอนนี้เรามี a คอลัมน์ที่มีส่วนหัว .

คราวนี้เราจะเรียนรู้วิธีจัดเรียงด้วย มาโคร VBA .

ขั้นตอน:

  • เหมือนเดิม เปิด Visual Basic Editor จากแท็บ นักพัฒนาซอฟต์แวร์ และ แทรก a โมดูล ในหน้าต่างโค้ด
  • ในหน้าต่างโค้ด ให้คัดลอกโค้ดต่อไปนี้แล้ววาง
2085

รหัสของคุณพร้อมที่จะทำงานแล้ว

ที่นี่

  • Key1:=Range(“ B5”) → ระบุ B5 เพื่อให้โค้ดทราบว่าควรจัดเรียงคอลัมน์ใด
  • Order1:=xlDescending → คราวนี้เราจะเรียงลำดับคอลัมน์ใน ลำดับจากมากไปน้อยจึงระบุลำดับเป็น xlDescending .
  • Header:= xlYes → เนื่องจากคอลัมน์ของเรามีส่วนหัว เราจึงระบุด้วย xlYes ตัวเลือก

  • เรียกใช้ โค้ดนี้ และคุณจะได้ คอลัมน์ที่มีส่วนหัวเรียงจากมากไปน้อย .

อ่านเพิ่มเติม: วิธีจัดเรียงกล่องรายการด้วย VBA ใน Excel (คู่มือฉบับสมบูรณ์)

การอ่านที่คล้ายกัน:

  • วิธีจัดเรียงที่อยู่ IP ใน Excel (6 วิธี)
  • [แก้ไขแล้ว!] การจัดเรียงของ Excel ไม่ทำงาน (2 วิธีแก้ไข)
  • วิธีเพิ่มปุ่มจัดเรียงใน Excel (7 วิธี)
  • จัดเรียงรัง e การใช้ VBA ใน Excel (6 ตัวอย่าง)
  • วิธีจัดเรียงตามชื่อใน Excel (3 ตัวอย่าง)

3. มาโคร VBA เพื่อจัดเรียงหลายคอลัมน์โดยมีหรือไม่มีส่วนหัว

คุณยังสามารถ จัดเรียงหลายคอลัมน์ในชุดข้อมูลของคุณด้วยรหัส VBA

ขั้นตอน:

  • ตามที่แสดงก่อนหน้านี้ เปิด Visual Basic Editor จากแท็บ นักพัฒนาซอฟต์แวร์ และ แทรก โมดูล ในหน้าต่างโค้ด
  • ในหน้าต่างโค้ด ให้คัดลอกโค้ดต่อไปนี้แล้ววาง
4226

โค้ดของคุณพร้อมทำงานแล้ว

ที่นี่

.SortFields.Add Key:=Range(“B4”), Order:=xlAscending

.SortFields.Add Key:=Range(“C4 ”), ลำดับ:=xlAscending

จากสองบรรทัดนี้ เรากำลังกำหนด เซลล์ B4 และ C4 เพื่อจัดเรียง สองคอลัมน์ที่เกี่ยวข้องกับ พวกเขา ใน จากน้อยไปหามาก .

เนื่องจากเรามีส่วนหัวในชุดข้อมูลของเรา เราจึงระบุ Header = xlYes มิฉะนั้น เราจะเขียน Header = xlNo ภายในโค้ด

  • เรียกใช้ โค้ดนี้ และคุณจะได้ คอลัมน์ที่มีส่วนหัวเรียงจากน้อยไปหามาก .

4. มาโครเพื่อจัดเรียงข้อมูลโดยดับเบิลคลิกที่ส่วนหัวใน Excel

หากคุณต้องการจัดเรียงข้อมูลอย่างง่ายดายเพียงแค่ ดับเบิลคลิกที่ส่วนหัว คุณสามารถทำได้ด้วย VBA โค้ด

ขั้นตอน:

  • คลิกขวา บนแท็บ แผ่นงาน .
  • จากรายการตัวเลือกที่ปรากฏ คลิก ดูโค้ด .
  • หน้าต่างโค้ดจะปรากฏขึ้น คัดลอกโค้ดต่อไปนี้แล้ววางลงในนั้น
9888
  • บันทึก รหัส

  • ตอนนี้ให้กลับไปที่แผ่นงานที่สนใจและถ้าคุณ ดับเบิลคลิกที่ส่วนหัว คุณจะเห็นคอลัมน์กำลังจัดระเบียบใหม่

อ่านเพิ่มเติม: วิธีจัดเรียงและกรองข้อมูลใน Excel (แนวทางฉบับสมบูรณ์)

สิ่งที่ต้องจำ

  • คุณสามารถสร้างช่วงที่มีชื่อและใช้แทนได้เมื่อคุณส่งช่วงของการอ้างอิงเซลล์ภายใน วิธีการจัดเรียง ตัวอย่างเช่น ถ้าคุณต้องการจัดเรียงช่วง A1:A10 แทนที่จะส่งผ่านทุกครั้งภายในโค้ด คุณสามารถสร้างช่วงที่มีชื่อได้ เช่น “ SortRange<40 ” และใช้กับเมธอด Range.Sort เช่น Range(“SortRange”)
  • หากคุณไม่แน่ใจว่าชุดข้อมูลของคุณมีส่วนหัวหรือไม่ หรือไม่ คุณสามารถให้ระบบระบุได้โดยใช้พารามิเตอร์ xlGuess

บทสรุป

บทความนี้แสดงวิธีการ จัดเรียงคอลัมน์ ใน Excel VBA ฉันหวังว่าบทความนี้มีประโยชน์มากสำหรับคุณ อย่าลังเลที่จะถามหากคุณมีคำถามเกี่ยวกับหัวข้อนี้

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง