สำหรับการเรียงตัวอักษรไม่ว่าจะเรียงไปทางบรรทัดหรือทางคอลัมน์ก็สามารถทำได้ด้วยฟังก์ชั่นการ Sort ตามปกติ แต่หากต้องการเรียงค่าในเซลล์ซึ่งมีการคีย์ข้อมูลโดยคั่นด้วยเครื่องหมายต่าง ๆ แล้วต้องการจะให้เรียงจากน้อยไปหามาก หรือจากมากไปหาน้อยนั้น เราไม่สามารถที่จะใช้ฟังก์ชั่นการ Sort ตามปกติที่โปรแกรมมีมาให้ จำเป็นจะต้องใช้วิธีอื่น หนึ่งในนั้นได้แก่การเขียน Code ให้จัดเรียงด้วย VBA
จากภาพด้านล่าง จะเห็นว่าในคอลัมน์ A เป็นการคีย์ข้อมูลลงในเซลล์โดยคั่นด้วยคอมม่าโดยไม่ได้จัดเรียง ส่วนในคอลัมน์ B เป็นการจัดเรียงข้อมูลที่คีย์จากน้อยไปหามากเรียบร้อยแล้ว
ภาพตัวอย่างประกอบแสดงถึงการจัดเรียงข้อมูลที่คั่นด้วยคอมม่า
สำหรับการทำเช่นนี้ เราสามารใช้ Code VBA เข้ามาช่วยได้ครับ โดยทำตามขั้นตอนตามด้านล่างครับ
- เปิดไฟล์ที่ต้องการเรียงข้อมูลในเซลล์
- กดแป้น Alt+F11 เพื่อเปิดหน้าต่าง VBE
- เข้าเมนู 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 - กดแป้น Alt+F11 เพื่อกลับมายัง Excel
- คลุมข้อมูลที่ต้องการเรียงค่าในเซลล์
- กดแป้น Alt+F8 แล้วเลือก Test > คลิก Run
- สังเกตดูผล
ไม่มีความคิดเห็น:
แสดงความคิดเห็น