繁体   English   中英

在Excel电子表格上,我如何按顺序从左至右按升序从5列中对5列进行排序,一次遍历所有行

[英]On an excel spread sheet how do I sort numeric values from 5 columns in asc order left to right 1 row at a time iterating through all rows

我无法为一定范围的列增加行数,并且无法对每行的范围进行排序,有人可以指导我完成这一过程吗?

使用宏或VBA,如何在遍历所有数据行(约765行)的同时从左到右从1列升序排列5列整数。

每行有6列数据,但仅需要对前5列进行排序。 每行具有相同数量的列和数据,并且永远不会有带有空白或NULL条目的单元格。 行中的每一列均包含该行唯一的整数。

每行需要独立于上一行或下一行进行排序,并且每行的第6列必须保留已排序的前5列。

我还没有弄清楚如何增加列的范围以执行每一行的排序。 非常感谢。

我假设要排序的五列是A到E。此宏循环遍历每一列(整个列),并独立于相邻列进行排序。

尝试这个:

Sub Macro2()
    Set rng = Range("A:E")

    For Each col In rng.Columns
        Set rng = Columns(col.Column)

        ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Cells(1, col.Column), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Sheet1").Sort
            .SetRange rng
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    Next
End Sub

数据看起来像这样:

在此处输入图片说明

并且在运行宏后将如下所示:

在此处输入图片说明

请注意,最后一列保持不变。


****编辑****

您可以按照以下方法从左到右对行进行排序,而不是对列进行排序:(它将行A1至行A10从“ A”列到“ E”列

Sub Macro2()
    Set Rng = Range("A1:E10")
    col = Rng.Cells(Rng.Count).Column

    Dim lastcol As Integer
    lastcol = Rng.Cells(Rng.Count).Column

    For Each rrow In Rng.Rows
        Set RngB = Range(ActiveSheet.Cells(rrow.Row, Rng.Column), ActiveSheet.Cells(rrow.Row, lastcol))

        ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=RngB, _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Sheet1").Sort
            .SetRange RngB
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlLeftToRight
            .SortMethod = xlPinYin
            .Apply
        End With
    Next
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM