เรียงลำดับทุก 7 แถวจนถึงจุดสิ้นสุดของแผ่นงาน


1

ฉันมีแผ่นงานที่มีห้าคอลัมน์ A-E และเกือบ 10,000 แถว ฉันต้องเรียงลำดับทุก 7 แถวจนถึงจุดสิ้นสุดของแผ่นงานโดยใช้ข้อมูลในคอลัมน์ C

รหัสต่อไปนี้ทำงานสำหรับช่วง A1: E7 สามารถแก้ไขรหัสนี้เพื่อจัดเรียงทุก 7 แถวโดยใช้ข้อมูลที่เกี่ยวข้องในคอลัมน์ C ภายในช่วงของพวกเขาหรือไม่เช่น C8: C14 สำหรับช่วง A8: E14 และ C15: C21 สำหรับช่วง A15: E21 .. ฯลฯ ?

Sub sort_7_rows()

Range("A1:E7").Select
ActiveWorkbook.Worksheets("sequencing (2)").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("sequencing (2)").Sort.SortFields.Add Key:=Range( _
    "C1:C7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
With ActiveWorkbook.Worksheets("sequencing (2)").Sort
    .SetRange Range("A1:E7")
    .Header = xlGuess
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

End Sub


ขอความช่วยเหลือจากผู้เชี่ยวชาญเกี่ยวกับปัญหานี้เป็นอย่างมาก ขอบคุณล่วงหน้า

คำตอบ:


0

มีวิธีง่ายๆในการทำสิ่งนี้โดยไม่ใช้ VBA ต้องการให้คุณสร้างสองคอลัมน์ใหม่ ในคอลัมน์แรกเพียงพิมพ์หมายเลขแถวของคุณ ตัวอย่างเช่นในแถว 1 ให้พิมพ์ 1 และในแถวที่สองให้พิมพ์ 2. จากนั้นเลือกทั้งสองเซลล์และเติมลงไปที่ส่วนท้ายของชุดข้อมูลของคุณเช่น 10,000 แถว

ในคอลัมน์ที่สองที่คุณสร้างขึ้นให้พิมพ์สมการ =ROUNDUP(A1/7,0)*7. จากนั้นเติมสมการลงไปจนถึงด้านล่างของชุดข้อมูลเช่นกัน นี่จะปัดเศษตัวเลขแต่ละตัวในคอลัมน์แรกเป็นจำนวนที่หารด้วย 7 ที่ใกล้ที่สุดซึ่งจะเป็นการจัดกลุ่มข้อมูลของคุณตามแถวที่เจ็ด

สุดท้ายคุณจะเรียงลำดับชุดข้อมูลของคุณโดยใช้ Sort หน้าต่าง:

enter image description here

เรียงลำดับตามค่าในคอลัมน์ที่สองที่คุณสร้างจากนั้นตามค่าในสิ่งที่คุณเรียกว่า "แถว C" ในคำถาม


นี่คือคำตอบที่ยอดเยี่ยมและเป็นประโยชน์สำหรับ Dazzle ขอบคุณมาก คุณบันทึกวันของฉัน :)
Josef Miller
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.