Excel 基于单元格数据隐藏行

Excel 基于单元格数据隐藏行,excel,vba,Excel,Vba,如果列a中的单元格包含0,我想隐藏工作表中的某些行。这是使用公式计算的 例如,如果A1包含值“0”,则第1行应隐藏 我知道我可以在工作表的激活事件中写入此代码,但这会降低文件的性能 是否有一种在不影响文件性能的情况下实现相同功能的好方法?您始终可以使用过滤器来实现这一点。我认为这样会更有效率 编辑: 要提高代码的性能,可以执行以下操作: 关闭事件 关闭计算 在运行循环以隐藏行之前 With Excel.Application .ScreenUpdating = False .En

如果列a中的单元格包含0,我想隐藏工作表中的某些行。这是使用公式计算的

例如,如果A1包含值“0”,则第1行应隐藏

我知道我可以在工作表的激活事件中写入此代码,但这会降低文件的性能


是否有一种在不影响文件性能的情况下实现相同功能的好方法?

您始终可以使用
过滤器来实现这一点。我认为这样会更有效率

编辑: 要提高代码的性能,可以执行以下操作:

  • 关闭事件
  • 关闭计算
  • 在运行循环以隐藏行之前

    With Excel.Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
        .Cursor = xlWait
    End With
    
    循环结束后

    With Excel.Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .Cursor = xlDefault
    End With
    
    希望这有帮助。此外,显式使用变量可以提高性能
    和计算。尽管显式声明变量也会有所帮助。

    是的,但我不希望用户看到数据已被过滤,也不希望允许他们更改数据过滤器。有可能使用代码吗?不是答案-应该作为comment@brettdj字体我不同意。根本的问题是“是否有一种在不影响文件性能的情况下实现相同功能的好方法?”。使用“过滤器”也是一种方法。请详细地告诉我你为什么不同意。详细地说?因为一行使用
    过滤器
    不是答案。@Konstant:谢谢。我没有做计算手册。我也会试试。我相信这会加快速度!