使用宏进行排序

使用宏进行排序

我有一个包含 8 列数据的电子表格。(第 1 行包含我的标题)。

我正在尝试录制一个宏,以便之后无需进行编辑。

我按下录制宏,突出显示我的数据,转到数据选项卡并选择排序。然后我继续按 D 列的值降序对数据进行排序。我按下停止录制宏。

当我在同一张工作表上执行此宏时,它运行良好。当我在与原始文件相同的同一文件中的另一个工作表上执行此宏时,什么也没有发生。

如何录制宏来执行我想要的操作而不在 VBA 中编辑宏?

感谢您的帮助。

Sub Macro1()
'
' Macro1 Macro
'

'
    Cells.Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("D2:D1316" _
        ), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A1:H1316")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

答案1

这将为您以相同的方式排序。

基本上,您使用两个变量来定义要排序的数据和排序的键。然后使用变量执行排序。这个相当简单,但它应该能让您了解如何编写自己的代码。

例如,如果您想按两个键进行排序,则可以使用key2等。

Sub Joe()

'Define the variables
Dim rngData As Range
Dim rngKey As Range

'Set the variables
Set rngData = Range("A:H")
Set rngKey = Range("D1")

'Perform the Sort
rngData.Sort key1:=rngKey, order1:=xlDescending, Header:=xlYes

End Sub

相关内容