-2

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

感谢您的任何帮助。

4

2 回答 2

1

您可以使用“数据”选项卡上的“高级过滤器”功能实现此目的。

在此处输入图像描述

您可以就地过滤列表(没有过滤箭头),也可以过滤到同一工作表中的另一个位置。添加(感谢 pnuts)屏幕截图中的列表范围应为 A5:L107。

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

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

如果您想在某些 VBA 代码中使用这些步骤,请记录这些步骤。

于 2013-07-02T18:38:12.507 回答
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
于 2013-07-02T18:37:01.207 回答