Vba: วิธีจัดเรียงแผ่นงานตามหลายคอลัมน์


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อจัดเรียงแผ่นงาน Excel ตามหลายคอลัมน์โดยใช้ VBA:

 Sub SortMultipleColumns()
    Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
                         Key2:=Range(" B1 "), Order2:=xlDescending, _
                         Header:=xlYes
End Sub

ตัวอย่างนี้จะเรียงลำดับเซลล์ในช่วง A1:B11 ก่อนตามค่าในคอลัมน์ A ตามลำดับจากน้อยไปมาก จากนั้นตามค่าในคอลัมน์ B ตามลำดับจากมากไปน้อย

โปรดทราบว่า Header:=xlYes ระบุว่าบรรทัดแรกควรถือเป็นบรรทัดส่วนหัว

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: จัดเรียงแผ่นงาน Excel ตามหลายคอลัมน์โดยใช้ VBA

สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Excel ที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

สมมติว่าเราต้องการจัดเรียงชุดข้อมูลในลักษณะต่อไปนี้:

  • ขั้นแรก จัดเรียงตามค่าในคอลัมน์ ทีม จากน้อยไปหามาก (A ถึง Z)
  • จากนั้นจัดเรียงตามค่าในคอลัมน์ คะแนน จากมากไปน้อย (มากไปน้อย)

เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:

 Sub SortMultipleColumns()
    Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
                         Key2:=Range(" B1 "), Order2:=xlDescending, _
                         Header:=xlYes
End Sub

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

ตอนนี้แถวจะถูกจัดเรียงตามชื่อทีมจากน้อยไปหามากและตามคะแนนจากมากไปน้อย

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

หมายเหตุ #2 : คุณสามารถดูเอกสารฉบับเต็มของวิธีการ เรียงลำดับ VBA ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

VBA: วิธีเขียนฟังก์ชัน AVERAGEIF และ AVERAGEIFS
VBA: วิธีเขียนฟังก์ชัน SUMIF และ SUMIFS
VBA: วิธีเขียนฟังก์ชัน COUNTIF และ COUNTIFS

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *