สำหรับการเรียงตัวอักษรไม่ว่าจะเรียงไปทางบรรทัดหรือทางคอลัมน์ก็สามารถทำได้ด้วยฟังก์ชั่นการ 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
- สังเกตดูผล
Revised: January 29, 2017 at 07:43