สารบัญ
หากต้องการจัดเรียงใน Excel ด้วย VBA คุณต้องใช้เมธอด Range.Sort ในบทความนี้ เราจะแสดงวิธีการ จัดเรียงคอลัมน์ ใน Excel ด้วยเมธอด Range.Sort ของ VBA .
ดาวน์โหลดสมุดงาน
คุณสามารถดาวน์โหลดสมุดงาน Excel แบบฝึกหัดได้ฟรีจากที่นี่
จัดเรียงคอลัมน์ด้วย VBA.xlsm
วิธีการRange.Sort ใน Excel VBA
Range.Sort ใน VBA เรียงลำดับช่วงของค่าใน Excel ที่นี่ ช่วง เป็นตัวแปรวัตถุที่ระบุช่วงของเซลล์ที่เราต้องการ เรียงลำดับจากน้อยไปมากหรือจากมากไปน้อย
ด้านล่างนี้คือพารามิเตอร์ที่คุณจำเป็นต้องทราบ เกี่ยวกับการทำงานด้วยวิธีนี้
พารามิเตอร์ | จำเป็น/ ไม่บังคับ | ประเภทข้อมูล | คำอธิบาย |
---|---|---|---|
คีย์ | ไม่บังคับ | ตัวแปร | ระบุช่วงหรือคอลัมน์ที่มีค่า จะถูกจัดเรียง |
Order | Optional | XlSortOrder | ระบุลำดับที่จะทำการเรียงลำดับ
|
ส่วนหัว | ไม่บังคับ | XlYesNoGuess | ระบุว่าแถวแรกมีส่วนหัวหรือไม่ .
|
4 วิธีการในการปรับใช้ VBA เพื่อจัดเรียงคอลัมน์ใน Excel
ในส่วนนี้ คุณจะทราบวิธีการ จัดเรียงคอลัมน์เดียวที่มีและไม่มีส่วนหัว , หลายคอลัมน์ด้วย และไม่มีส่วนหัว และวิธีการ จัดเรียงโดยดับเบิลคลิกที่ส่วนหัวในคอลัมน์ ใน Excel
1. ฝัง VBA เพื่อจัดเรียงคอลัมน์เดียวโดยไม่มีส่วนหัวใน Excel
หากคุณต้องการ จัดเรียงคอลัมน์เดียว ในแผ่นงาน Excel ของคุณด้วยโค้ด VBA ให้ทำตาม ขั้นตอนด้านล่าง
นี่คือคอลัมน์ของเราที่เราจะจัดเรียงด้วยรหัส VBA
ขั้นตอน:
- กด Alt + F11 บนแป้นพิมพ์หรือไปที่แท็บ ผู้พัฒนา -> Visual Basic เพื่อเปิด Visual Basic Editor .
- ในหน้าต่างรหัสป๊อปอัป จากแถบเมนู คลิก แทรก -> โมดูล .
- คัดลอกโค้ดต่อไปนี้และวางลงในหน้าต่างโค้ด
2865
โค้ดของคุณ พร้อมที่จะเรียกใช้แล้ว
ที่นี่
- Key1:=Range(“B5”) → ระบุ B5 เพื่อให้โค้ดทราบว่าจะเรียงลำดับคอลัมน์ใด
- Order1:=xlAscending → ระบุลำดับเป็น xlAscending เพื่อเรียงลำดับคอลัมน์จากน้อยไปหามาก หากคุณต้องการเรียงลำดับคอลัมน์จากมากไปน้อย ให้เขียน xlDescending แทน
- Header:= xlNo →เนื่องจากคอลัมน์ของเราไม่มีส่วนหัว เราจึงระบุด้วยตัวเลือก xlNo
- กด F5 บนแป้นพิมพ์หรือจากแถบเมนู เลือก เรียกใช้ -> เรียกใช้ Sub/UserForm คุณยังสามารถคลิกที่ ไอคอนเล่นขนาดเล็ก ในแถบเมนูย่อยเพื่อเรียกใช้มาโคร
คุณจะเห็นว่า ขณะนี้คอลัมน์ เรียงลำดับจากน้อยไปมาก .
โปรดสังเกตว่าที่นี่เราได้กำหนดช่วงข้อมูลด้วยตนเองเป็น Range(“B5:B15” ) .
หากคุณต้องการเปลี่ยนแปลงข้อมูลโดยการเพิ่มหรือลบค่า คุณสามารถใช้โค้ดต่อไปนี้ซึ่งจะอัปเดตโดยอัตโนมัติตามเซลล์ในชุดข้อมูล
4036
โปรดสังเกตว่า ของการกำหนดช่วงด้วยตนเองโดย Range(“B5:B15”) เราได้เขียน Range( “B5”, Range(“B5”) End(xlDown)) .
การดำเนินการนี้จะจัดเรียงคอลัมน์ตามเซลล์ที่เติมข้อมูลล่าสุดติดต่อกัน หากมีเซลล์ว่าง ข้อมูลจะถูกพิจารณาจนถึงเซลล์ว่างเซลล์แรกเท่านั้น
อ่านเพิ่มเติม: VBA เพื่อจัดเรียงตารางใน Excel (4 วิธี)
2. แทรกมาโคร VBA เพื่อจัดเรียงคอลัมน์เดียวที่มีส่วนหัว
ในส่วนก่อนหน้านี้ เรามีชุดข้อมูลของคอลัมน์เดียวที่ไม่มีส่วนหัว แต่ตอนนี้เรามี a คอลัมน์ที่มีส่วนหัว .
คราวนี้เราจะเรียนรู้วิธีจัดเรียงด้วย มาโคร VBA .
ขั้นตอน:
- เหมือนเดิม เปิด Visual Basic Editor จากแท็บ นักพัฒนาซอฟต์แวร์ และ แทรก a โมดูล ในหน้าต่างโค้ด
- ในหน้าต่างโค้ด ให้คัดลอกโค้ดต่อไปนี้แล้ววาง
2085
รหัสของคุณพร้อมที่จะทำงานแล้ว
ที่นี่
- Key1:=Range(“ B5”) → ระบุ B5 เพื่อให้โค้ดทราบว่าควรจัดเรียงคอลัมน์ใด
- Order1:=xlDescending → คราวนี้เราจะเรียงลำดับคอลัมน์ใน ลำดับจากมากไปน้อยจึงระบุลำดับเป็น xlDescending .
- Header:= xlYes → เนื่องจากคอลัมน์ของเรามีส่วนหัว เราจึงระบุด้วย xlYes ตัวเลือก
- เรียกใช้ โค้ดนี้ และคุณจะได้ คอลัมน์ที่มีส่วนหัวเรียงจากมากไปน้อย .
อ่านเพิ่มเติม: วิธีจัดเรียงกล่องรายการด้วย VBA ใน Excel (คู่มือฉบับสมบูรณ์)
การอ่านที่คล้ายกัน:
- วิธีจัดเรียงที่อยู่ IP ใน Excel (6 วิธี)
- [แก้ไขแล้ว!] การจัดเรียงของ Excel ไม่ทำงาน (2 วิธีแก้ไข)
- วิธีเพิ่มปุ่มจัดเรียงใน Excel (7 วิธี)
- จัดเรียงรัง e การใช้ VBA ใน Excel (6 ตัวอย่าง)
- วิธีจัดเรียงตามชื่อใน Excel (3 ตัวอย่าง)
3. มาโคร VBA เพื่อจัดเรียงหลายคอลัมน์โดยมีหรือไม่มีส่วนหัว
คุณยังสามารถ จัดเรียงหลายคอลัมน์ในชุดข้อมูลของคุณด้วยรหัส VBA
ขั้นตอน:
- ตามที่แสดงก่อนหน้านี้ เปิด Visual Basic Editor จากแท็บ นักพัฒนาซอฟต์แวร์ และ แทรก ก โมดูล ในหน้าต่างโค้ด
- ในหน้าต่างโค้ด ให้คัดลอกโค้ดต่อไปนี้แล้ววาง
4226
โค้ดของคุณพร้อมทำงานแล้ว
ที่นี่
.SortFields.Add Key:=Range(“B4”), Order:=xlAscending
.SortFields.Add Key:=Range(“C4 ”), ลำดับ:=xlAscending
จากสองบรรทัดนี้ เรากำลังกำหนด เซลล์ B4 และ C4 เพื่อจัดเรียง สองคอลัมน์ที่เกี่ยวข้องกับ พวกเขา ใน จากน้อยไปหามาก .
เนื่องจากเรามีส่วนหัวในชุดข้อมูลของเรา เราจึงระบุ Header = xlYes มิฉะนั้น เราจะเขียน Header = xlNo ภายในโค้ด
- เรียกใช้ โค้ดนี้ และคุณจะได้ คอลัมน์ที่มีส่วนหัวเรียงจากน้อยไปหามาก .
4. มาโครเพื่อจัดเรียงข้อมูลโดยดับเบิลคลิกที่ส่วนหัวใน Excel
หากคุณต้องการจัดเรียงข้อมูลอย่างง่ายดายเพียงแค่ ดับเบิลคลิกที่ส่วนหัว คุณสามารถทำได้ด้วย VBA โค้ด
ขั้นตอน:
- คลิกขวา บนแท็บ แผ่นงาน .
- จากรายการตัวเลือกที่ปรากฏ คลิก ดูโค้ด .
- หน้าต่างโค้ดจะปรากฏขึ้น คัดลอกโค้ดต่อไปนี้แล้ววางลงในนั้น
9888
- บันทึก รหัส
- ตอนนี้ให้กลับไปที่แผ่นงานที่สนใจและถ้าคุณ ดับเบิลคลิกที่ส่วนหัว คุณจะเห็นคอลัมน์กำลังจัดระเบียบใหม่
อ่านเพิ่มเติม: วิธีจัดเรียงและกรองข้อมูลใน Excel (แนวทางฉบับสมบูรณ์)
สิ่งที่ต้องจำ
- คุณสามารถสร้างช่วงที่มีชื่อและใช้แทนได้เมื่อคุณส่งช่วงของการอ้างอิงเซลล์ภายใน วิธีการจัดเรียง ตัวอย่างเช่น ถ้าคุณต้องการจัดเรียงช่วง A1:A10 แทนที่จะส่งผ่านทุกครั้งภายในโค้ด คุณสามารถสร้างช่วงที่มีชื่อได้ เช่น “ SortRange<40 ” และใช้กับเมธอด Range.Sort เช่น Range(“SortRange”)
- หากคุณไม่แน่ใจว่าชุดข้อมูลของคุณมีส่วนหัวหรือไม่ หรือไม่ คุณสามารถให้ระบบระบุได้โดยใช้พารามิเตอร์ xlGuess
บทสรุป
บทความนี้แสดงวิธีการ จัดเรียงคอลัมน์ ใน Excel VBA ฉันหวังว่าบทความนี้มีประโยชน์มากสำหรับคุณ อย่าลังเลที่จะถามหากคุณมีคำถามเกี่ยวกับหัวข้อนี้