ฉันสร้างตารางใน Excel 2013 แต่ฉันต้องการเรียงลำดับเซลล์ที่เลือกเท่านั้น ช่วงของตารางคือ A1: I200 แต่ฉันต้องการเรียงลำดับ A150: I200 เท่านั้น ฉันพยายามเลือกเซลล์คลิกขวาเรียงลำดับจัดเรียงตารางทั้งหมด มีวิธีแก้ปัญหานี้ไหม?
ฉันสร้างตารางใน Excel 2013 แต่ฉันต้องการเรียงลำดับเซลล์ที่เลือกเท่านั้น ช่วงของตารางคือ A1: I200 แต่ฉันต้องการเรียงลำดับ A150: I200 เท่านั้น ฉันพยายามเลือกเซลล์คลิกขวาเรียงลำดับจัดเรียงตารางทั้งหมด มีวิธีแก้ปัญหานี้ไหม?
คำตอบ:
แมโครต่อไปนี้ใช้งานได้ดี คุณยกเลิกการทำรายการในตารางเป็นอันดับแรกจากนั้นเรียงลำดับช่วงที่เลือกแล้วสร้าง ListObject อีกครั้ง คุณควรปรับ Sub เพื่อปรับรายละเอียดตามต้องการ
Sub part_sort()
Dim rng_sel As Range, rng_all As Range
Dim lo_table As ListObject, lo_name As String
Dim ws As Worksheet
Set ws = ActiveSheet
Set rng_sel = Selection
Set lo_table = rng_sel.ListObject
lo_name = lo_table.Name
Set rng_all = lo_table.Range
Debug.Print rng_all.Address
lo_table.Unlist
With ws.Sort
.SortFields.Clear
.SortFields.Add Key:=rng_sel.Columns(1), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.SetRange rng_sel
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Set lo_table = ws.ListObjects.Add(xlSrcRange, rng_all, , xlYes)
lo_table.Name = lo_name
End Sub
PS: คำถามนี้น่าจะเหมาะกว่าสำหรับ Stack Overflow