使用vba在多个工作表上基于两列对表进行排序



我希望宏从每个表中的每个表中筛选所有失败的结果(每个表有一个表(,并使用列"中的日期按升序排序;我";。

以下是宏现在所做的

以下是我希望宏执行的操作

有人能帮忙吗?

这是我的代码:

Sub Formatting
Dim sht As Worksheet
For Each sht In Sheets
If sht.Name <> "Original" Then
sht.Range("J1").AutoFilter 10, "=FAIL"
sht.Range("A1").CurrentRegion.Sort Key1:=sht.Columns("I"), Order1:=xlAscending, Header:=xlYes

End If
Next sht
End Sub

这段代码应该可以随心所欲。在尝试之前,请查看两列地址。

Sub Formatting()
Dim Sht     As Worksheet
Dim Tbl     As ListObject


For Each Sht In Worksheets
If Sht.Name <> "Original" Then
Set Tbl = Sht.ListObjects(1)
With Tbl.Sort.SortFields
.Clear
.Add Key:= Tbl.DataBodyRange.Columns(3), _
SortOn:=xlSortOnValues, _
Order:=xlDescending, _
DataOption:=xlSortNormal
End With
With Tbl.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Tbl.DataBodyRange.AutoFilter 9, "=FAIL"
End If
Next Sht
End Sub

代码假定表从第1列(即A列(开始。Tbl.DataBodyRange.Columns(3)指定表中的第3列。如果您的表从A列开始,那么T列将是20,并且我的代码中的3必须替换为20。类似地,只有当表的第一列是A.时,Tbl.DataBodyRange.AutoFilter 9, "=FAIL"才指定列I

最新更新