从动态行分类

  • 本文关键字:分类 动态 excel vba
  • 更新时间 :
  • 英文 :


我正在努力对电子表格的两个部分进行排序。顶部正常工作的下半部分,因为该行会根据数据更改。这是我所拥有的,问题是最终对整个(两个)部分进行分类(由换行符隔开)。在正确方向上的任何帮助将不胜感激。

编辑以进行澄清:我拥有的是一个具有两个部分的电子表格。顶部可以是变量/动态范围。即可能是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

相关内容

  • 没有找到相关文章

最新更新