删除由变量设置的自动过滤器

时间:2015-03-26 21:38:23

标签: excel-vba vba excel

我在删除由变量设置的自动过滤器时遇到了一些问题。我已经尝试了一切我能想到/在网上找到的东西。似乎没有什么能够删除它。有什么建议吗?

Dim CashRange As Range
Set CashRange = Range("L2:L50000")
CashRange.AutoFilter 1, "CASH"
CashLabeledRows = ActiveSheet.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count - 1
CashRange.Parent.AutoFilter.Range.Cells.Interior.ColorIndex = 6
CashRange.Parent.AutoFilterMode = False

2 个答案:

答案 0 :(得分:0)

看看这些例子,也许它们会有所帮助。

If ActiveSheet.FilterMode = True Then 'checks if there are any filters turned on!?
If ActiveSheet.AutoFilterMode = True Then 'if there are filters at all(what so ever)
ActiveSheet.ShowAllData  'Turns off all filters(select all), but not remove them

这不是序列码,每一行都是为了自己。但它可以相互结合。

答案 1 :(得分:0)

不是最佳答案,但在对表单中存在的不同数据类型进行一些测试后,我确定过滤器问题仅出现在" CASH"在L柱的任何细胞中都不存在。

我决定暂时解决此问题的最佳方法是在列上查找CASH值。然后根据响应,我在上面的vba之前和之后定义了GoTo。如果没必要的话,基本上不会跳过。

感谢大家的时间和投入。代码发布在下面以供参考。

Dim t As Range
Set t = Columns("L").Find("CASH", LookAt:=xlWhole)
If t Is Nothing Then
        GoTo AfterCashYellow
    ElseIf Not t Is Nothing Then
        GoTo CashYellowFill
End If