我正在努力对电子表格的两个部分进行排序。顶部正常工作的下半部分,因为该行会根据数据更改。这是我所拥有的,问题是最终对整个(两个)部分进行分类(由换行符隔开)。在正确方向上的任何帮助将不胜感激。
编辑以进行澄清:我拥有的是一个具有两个部分的电子表格。顶部可以是变量/动态范围。即可能是30行或300行。电子表格的后半部分是由线插入(空白的单元组)分开的,我需要排序并有问题。问题在于使从(变量/动态)行到Cu识别单元格的排序。希望这有助于更好地解释事情,但请让我知道是否需要更多澄清。
Sub test()
Dim lrow As Long
lrow = Selection.End(xlDown).Row
Selection.End(xlDown).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Worksheets("Inseason Columns").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Inseason Columns").Sort.SortFields.Add Key:=Range( _
"E" & lrow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Inseason Columns").Sort
.SetRange Range("A:CU", Selection.End(xlDown))
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
如果'线路断裂'是空白的行,请隐藏它们,您可以循环浏览范围。
Option Explicit
Sub sortAreas()
Dim a As Long
With Worksheets("sheet10")
.range("1:2").entirerow.hidden = true
.Columns("E").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
With Intersect(.Range("A:CU"), .UsedRange).SpecialCells(xlCellTypeVisible)
For a = 1 To .Areas.Count
With .Areas(a)
.Cells.Sort Key1:=.Columns(5), Order1:=xlAscending, DataOption1:=xlSortTextAsNumbers, _
Orientation:=xlTopToBottom, Header:=xlNo
End With
Next a
End With
.Columns("E").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False
.range("1:2").entirerow.hidden = false
End With
End Sub