การเรียงตัวอักษรในเซลล์

สำหรับการเรียงตัวอักษรไม่ว่าจะเรียงไปทางบรรทัดหรือทางคอลัมน์ก็สามารถทำได้ด้วยฟังก์ชั่นการ Sort ตามปกติ แต่หากต้องการเรียงค่าในเซลล์ซึ่งมีการคีย์ข้อมูลโดยคั่นด้วยเครื่องหมายต่าง ๆ แล้วต้องการจะให้เรียงจากน้อยไปหามาก หรือจากมากไปหาน้อยนั้น เราไม่สามารถที่จะใช้ฟังก์ชั่นการ Sort ตามปกติที่โปรแกรมมีมาให้ จำเป็นจะต้องใช้วิธีอื่น หนึ่งในนั้นได้แก่การเขียน Code ให้จัดเรียงด้วย VBA

จากภาพด้านล่าง จะเห็นว่าในคอลัมน์ A เป็นการคีย์ข้อมูลลงในเซลล์โดยคั่นด้วยคอมม่าโดยไม่ได้จัดเรียง ส่วนในคอลัมน์ B เป็นการจัดเรียงข้อมูลที่คีย์จากน้อยไปหามากเรียบร้อยแล้ว

ภาพตัวอย่างประกอบแสดงถึงการจัดเรียงข้อมูลที่คั่นด้วยคอมม่า

image
ภาพ 1 การเรียงตัวอักษรในเซลล์เดียว

สำหรับการทำเช่นนี้ เราสามารใช้ Code VBA เข้ามาช่วยได้ครับ โดยทำตามขั้นตอนตามด้านล่างครับ

  1. ปิดไฟล์ที่ต้องการเรียงข้อมูลในเซลล์
  2. กดแป้น Alt+F11 เพื่อเปิดหน้าต่าง VBE
  3. เข้าเมนู Insert > Module > จากนั้น Copy Code ด้านล่างไปวาง

    Sub Test()
        Dim r As Range, t As Variant
        Dim i As Integer, j As Integer
        Dim First As Integer, Last As Integer
        Dim temp As Variant
        For Each r In Selection
            t = Split(r, ",")
            First = LBound(t)
            Last = UBound(t)
            For i = First To Last
                For j = First To Last - 1
                    If UCase(t(j)) > UCase(t(i)) Then
                        temp = t(i)
                        t(i) = t(j)
                        t(j) = temp
                    End If
                Next j
            Next i
        r = Join(t, ",")
        Next r
    End Sub
    
  4. กดแป้น Alt+F11 เพื่อกลับมายัง Excel
  5. คลุมข้อมูลที่ต้องการเรียงค่าในเซลล์
  6. กดแป้น Alt+F8 แล้วเลือก Test > คลิก Run
  7. สังเกตดูผล

Revised: January 29, 2017 at 07:43

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top