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