我有一个包含 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