您好我有以下代码,我希望使用VBA过滤Excel中的列表,每个列表将根据我选择的公司而有所不同。
With wsDest.Rows(1)
.AutoFilter field:=3, Criteria1:="Swap", Operator:=xlOr, Criteria2:="FwdSwap", Operator:=xlOr, Criteria3:="NDS"
If wsDest.Range("C1:C" & lr).SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then
wsDest.Range("G2:G" & lr).SpecialCells(xlCellTypeVisible).Copy wsDest.Range("J" & Rows.Count).End(3)(2)
End If
.AutoFilter
End With
wsDest是我正在使用的工作表,代码工作正常,但我正在过滤的许多列表不包含“NDS”,并且当发生这种情况时代码会中断。有没有办法可以添加到此'如果列表中存在NDS然后使用过滤器,否则跳过NDS作为过滤器'
非常感谢提前
答案 0 :(得分:2)
.AutoFilter field:=3, Criteria1:="Swap", Operator:=xlOr, Criteria2:="FwdSwap", Operator:=xlOr, Criteria3:="NDS"
此处的语法对于多个条件的过滤不正确。虽然有Criteria2
,但此方法没有Criteria3
等等。
如果要过滤多个值,则应使用带Criteria1
的数组:
.AutoFilter Field:=3, Criteria1:=Array("Swap", "FwdSwap", "NDS"), Operator:=xlFilterValues
另请注意@ YowE3K指出的操作员更改为xlFilterValues