Sorting Excel 2010 VBA宏调整,将所有行逐行向下调整到最后一行(14000行)

Sorting Excel 2010 VBA宏调整,将所有行逐行向下调整到最后一行(14000行),sorting,excel,vba,Sorting,Excel,Vba,现在,宏执行以下操作: 1.选择整行。2.横向排序(从左到右)。3.转到下一排。(我已经准备好按Ctrl+s键并在下一行再次运行它。这正是我试图避免的,因为我必须执行14000行) 我如何修改代码,从第1行一直到第14000行做同样的事情?(我不希望它逐行检查是否有内容,因为这会减慢代码的速度。我宁愿现在将行号硬编码为14000,然后根据需要手动更改) 我发现这段代码似乎就是这样,但我不知道如何让这两段代码一起工作: Sub FindEmptyCell_2() Dim i As Integ

现在,宏执行以下操作: 1.选择整行。2.横向排序(从左到右)。3.转到下一排。(我已经准备好按Ctrl+s键并在下一行再次运行它。这正是我试图避免的,因为我必须执行14000行)

我如何修改代码,从第1行一直到第14000行做同样的事情?(我不希望它逐行检查是否有内容,因为这会减慢代码的速度。我宁愿现在将行号硬编码为14000,然后根据需要手动更改)



我发现这段代码似乎就是这样,但我不知道如何让这两段代码一起工作:

Sub FindEmptyCell_2() 
Dim i As Integer 
Do 
i = i + 1 
Loop Until IsEmpty(Range("A1").Offset(i, 0).Value) 
Range("A1").Offset(i, 0).Select 
End Sub 
比如:

Sub Macro1()
    Dim sht As Worksheet, rw As Range

    Set sht = ActiveWorkbook.Worksheets("Sheet1")

    For Each rw In sht.UsedRange.Rows
        With sht.Sort
            .SortFields.Clear
            .SortFields.Add Key:=rw, SortOn:=xlSortOnValues, _
                            Order:=xlDescending, DataOption:=xlSortNormal
            .SetRange rw
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlLeftToRight
            .SortMethod = xlPinYin
            .Apply
        End With
    Next rw
End Sub

要尽可能少地修改代码,您可以使用以下方法:

Sub SortingOneByOne()
'
' SortingOneByOne Macro
'
' Keyboard Shortcut: Ctrl+s
'

 For x = 1 to 14000 'From Row 1 to 14000
    ActiveCell.Rows(x).EntireRow.Select
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Add Key:=ActiveCell.Range _
        ("A" & x & ":AEA" & x), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet2").Sort
        .SetRange ActiveCell.Range(x)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlLeftToRight
        .SortMethod = xlPinYin
        .Apply
    End With
Next x
End Sub

这似乎是sht.Sort的
错误。我想你必须在一个范围内排序。在测试中为我工作。我得到
编译错误:在那一行上找不到方法或数据成员。奇怪。。。。我用的是Excel2003,可能是和这个有关的。
Sub SortingOneByOne()
'
' SortingOneByOne Macro
'
' Keyboard Shortcut: Ctrl+s
'

 For x = 1 to 14000 'From Row 1 to 14000
    ActiveCell.Rows(x).EntireRow.Select
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Add Key:=ActiveCell.Range _
        ("A" & x & ":AEA" & x), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet2").Sort
        .SetRange ActiveCell.Range(x)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlLeftToRight
        .SortMethod = xlPinYin
        .Apply
    End With
Next x
End Sub