Excel VBA - 过滤数据然后删除过滤器,保持过滤后的数据隐藏

时间:2013-07-02 18:27:01

标签: excel excel-vba vba

我正在创建一个包含多个列的报告。我需要隐藏所有列都有$ 0的行。使用VBA,如果所有先前列都为零,我添加了一个等于零的最后一列。然后我在最后一列上运行一个自动过滤器来隐藏应该隐藏的列。然后我想删除最后一列,但隐藏隐藏的行。但是,如果我删除该列,则过滤器将被撤消。我记得很久以前我有办法在删除过滤栏后保留过滤器,但我不记得我是怎么做到的。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用数据标签上的高级过滤器功能实现此目的。

enter image description here

您可以在适当的位置过滤列表(不使用过滤器箭头),也可以过滤到同一工作表中的其他位置。 已添加(感谢pnuts)屏幕截图中的列表范围应为A5:L107。

如果值是字符串,那么COUNTIF中的条件将是“$ 0”,但我希望它们是数字。

数字12是我的示例表中的列数。

如果要在某些VBA代码中使用它们,请记录步骤。

答案 1 :(得分:0)

我认为这样做:

Dim StartCell As Range, CurrentCell As Range
Set StartCell = Range("G2") 'the start cell of your filter column
Set CurrentCell = StartCell


Dim i As Integer
i = 0
Do While CurrentCell.Value <> ""
    If CurrentCell.Value = 0 Then
        CurrentCell.EntireRow.Hidden = True
    End If
    i = i + 1
    Set CurrentCell = StartCell.Offset(i, 0)
Loop