我已经使用VBA编写了宏,但是使用宏时得到的结果与手动过滤时得到的结果不同。 代码中是否有什么错误会导致其无法正常运行?有些列具有多个条件,而仅使用“记录宏”功能就无法做到。我不确定是否要使用数组。 列号都是正确的,或者使用row1中的列标题会更好吗?
Sub Debut()
'
' DebutDestroyer Macro
' This macro will filter for VDW Win %, Class, VDW Form, RP Rating, J&T, Race Type and Contender
'
Dim last As Long
last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
With ActiveSheet.Range("A1:BU" & last)
.AutoFilter Field:=7, Criteria1:="Flat Turf"
.AutoFilter Field:=7, Criteria1:="NH Flat"
.AutoFilter Field:=7, Criteria1:="Hurdle Turf"
.AutoFilter Field:=7, Criteria1:="Hunter Chase"
.AutoFilter Field:=10, Criteria1:="1"
.AutoFilter Field:=10, Criteria1:="2"
.AutoFilter Field:=10, Criteria1:="3"
.AutoFilter Field:=10, Criteria1:="4"
.AutoFilter Field:=38, Criteria1:="100"
.AutoFilter Field:=43, Criteria1:="0"
.AutoFilter Field:=43, Criteria1:="1"
.AutoFilter Field:=71, Criteria1:="="
.AutoFilter Field:=41, Criteria1:=">=30"
.AutoFilter Field:=41, Criteria1:="0"
.AutoFilter Field:=41, Criteria1:="="
.AutoFilter Field:=5, Criteria1:=">=80"
.AutoFilter Field:=50, Criteria1:="1"
.AutoFilter Field:=50, Criteria1:="2"
.AutoFilter Field:=50, Criteria1:="3"
End With
End Sub
答案 0 :(得分:1)
我多次猜测每列的Criteria1会产生问题。而不是像这样在每行中设置它:
.AutoFilter Field:=10, Criteria1:="1"
.AutoFilter Field:=10, Criteria1:="2"
.AutoFilter Field:=10, Criteria1:="3"
.AutoFilter Field:=10, Criteria1:="4"
您可以将其替换为值数组:
.AutoFilter Field:=10, Criteria1:=Array("1", "2", "3", "4"), Operator:=xlFilterValues