Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

VBA Autofilter: 3 วิธีมีประสิทธิภาพ เรียงข้อมูลจากน้อยไปมากใน Excel

ขณะทำงานกับ Microsoft Excel ขนาดใหญ่ บางครั้งต้องเรียงข้อมูลจากน้อยไปมาก สามารถทำได้ง่ายด้วย VBA Macros บทความนี้จะสอน 3 วิธี เรียงจากน้อยไปมากด้วย VBA Autofilter ใน Excel อย่างมีประสิทธิภาพ

เรียงจากน้อยไปมาก VBA Autofilter ใน Excel (ภาพรวม)

Sub Autofilter_Sort_Smallest_to_Largest()
    With ActiveSheet.Sort
        .SortFields.Add Key:=Range("D4"), Order:=xlAscending
        .SetRange Range("B4:E16")
        .Header = xlYes
        .Apply
    End With
End Sub

3 วิธีเรียงจากน้อยไปมากด้วย VBA Autofilter ใน Excel

ชุดข้อมูล: ข้อมูลพนักงานขายกลุ่ม Armani - ชื่อ, ประเภทสินค้า, สั่งซื้อ, ส่งมอบ (คอลัมน์ B, C, D, E)

1. เรียงจากน้อยไปมากด้วยลำดับขึ้น (Ascending Order) ใน VBA Autofilter

เรียงตามคอลัมน์ Ordered (สั่งซื้อ) จากน้อยไปมาก

  1. เปิด Module: Developer > Visual Basic > Insert > Module
  2. วางโค้ด:
Sub Autofilter_Sort_Smallest_to_Largest()
    With ActiveSheet.Sort
        .SortFields.Add Key:=Range("D4"), Order:=xlAscending
        .SetRange Range("B4:E16")
        .Header = xlYes
        .Apply
    End With
End Sub
  1. รันโค้ด: Run > Run Sub/UserForm
  2. ข้อมูลจะถูกเรียงจากน้อยไปมากตามคอลัมน์ Ordered

อ่านเพิ่มเติม: VBA AutoFilter หลายเงื่อนไขในฟิลด์เดียวใน Excel (4 วิธี)

2. ใช้หลายคอลัมน์เรียงจากน้อยไปมากพร้อมหัวข้อใน Excel VBA

เรียงหลายคอลัมน์พร้อมกัน: ชื่อพนักงานขาย และ สั่งซื้อ จากน้อยไปมาก

  1. แทรก Module ใหม่ วางโค้ด:
Sub Sort_Multiple_Columns()
    With ActiveSheet.Sort
        .SortFields.Add Key:=Range("B4"), Order:=xlAscending
        .SortFields.Add Key:=Range("D4"), Order:=xlAscending
        .SetRange Range("B4:E16")
        .Header = xlYes
        .Apply
    End With
End Sub
  1. รันโค้ด - ข้อมูลจะเรียงตามชื่อ แล้วตามจำนวนสั่งซื้อ จากน้อยไปมาก

อ่านเพิ่มเติม: [แก้ไข]: AutoFilter Method of Range Class Failed (5 วิธีแก้)

3. ใช้ VBA Autofilter เรียงจากน้อยไปมากตามชื่อชีท

เรียงตามคอลัมน์ ส่งมอบ (Delivered) จากน้อยไปมาก โดยระบุชื่อชีท

  1. แทรก Module วางโค้ด:
Sub Sort_Smallest_to_Largest()
    Rows("4:16").Select
    ActiveWorkbook.Worksheets("Smallest to Largest").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Smallest to Largest").Sort.SortFields.Add Key:=Range("E4:E16") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Smallest to Largest").Sort
        .SetRange Range("B4:E16")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
  1. รันโค้ด - ข้อมูลจะเรียงจากน้อยไปมากตามคอลัมน์ส่งมอบ ในชีทที่ระบุชื่อ

อ่านเพิ่มเติม: วิธี Autofilter และคัดลอกแถวที่มองเห็นได้ด้วย Excel VBA

สิ่งที่ควรจำ

  • 👉 กด Alt + F11 พร้อมกัน เพื่อเปิด Microsoft Visual Basic for Applications
  • 👉 หากไม่เห็นแท็บ Developer ให้ไปที่ File > Option > Customize Ribbon เพื่อเปิดใช้งาน

สรุป

หวังว่า 3 วิธี เรียงจากน้อยไปมาก ด้วย VBA จะช่วยให้คุณนำไปประยุกต์ใช้กับสเปรดชีต Excel ได้อย่างมีประสิทธิภาพ ยินดีต้อนรับคำถามหรือข้อสงสัยในส่วนความคิดเห็น

บทความที่เกี่ยวข้อง