我正在创建一个包含多列的报告。我需要隐藏所有列都有 $0 的行。使用 VBA,如果所有先前的列都为零,我添加了最后一列,该列等于零。然后我在最后一列上运行一个自动过滤器来隐藏应该隐藏的列。然后我想删除最后一列,但隐藏隐藏的行。但是,如果我删除该列,过滤器将被撤消。我记得几年前我有一种方法可以在删除过滤列后保留过滤器,但我不记得我是怎么做到的。
感谢您的任何帮助。
您可以使用“数据”选项卡上的“高级过滤器”功能实现此目的。
您可以就地过滤列表(没有过滤箭头),也可以过滤到同一工作表中的另一个位置。添加(感谢 pnuts)屏幕截图中的列表范围应为 A5:L107。
如果值是字符串,那么 COUNTIF 中的条件将是“$0”,但我希望它们是数字。
数字 12 是我在示例表中的列数。
如果您想在某些 VBA 代码中使用这些步骤,请记录这些步骤。
我认为这样做可以:
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