หน้าเว็บ

วันอังคารที่ 31 กรกฎาคม พ.ศ. 2555

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

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

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

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

image

สำหรับการทำเช่นนี้ เราสามารใช้ 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. สังเกตดูผล

ไม่มีความคิดเห็น: