VBA中的自动多级分类

我目前有以下代码可以工作,每次键入内容时,它都会自动按列Isorting

Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Column = 9 Then Dim lastRow As Long lastRow = ActiveSheet.Cells.Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row Range("A2:I" & lastRow).Sort Key1:=Range("I2:I" & lastRow), Order1:=xlAscending, Header:=xlNo End If End Sub 

我希望它主要按项目Isorting,而且还要按A列sorting。有什么帮助吗?

这样的任何请求的起点应该是“启动macroslogging器,进行sorting,并看看它吐出了什么代码”。

如果你启动录音机,并添加一个多级sorting:

在这里输入图像说明

在这里输入图像说明

然后macros录像机吐出这个:

 Sub Macro11() ' ' Macro11 Macro ' ' ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("I2:I16") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A16") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A1:I16") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub 

这给你一个线索,你需要添加多个sorting键的语法。 你需要帮助修改你的原始代码,还是这足以让你开始?