【问题标题】:Using a macro to hide rows without breaking formulas/ functions使用宏隐藏行而不破坏公式/函数
【发布时间】:2019-02-05 15:25:02
【问题描述】:

我有一张工作表,用于将任务分配给企业中的特定部门。每个部门跨越 A 到 Y 列,长度为 40 行,第一个部门的范围为 A6:Y46。该表有 15 个不同的部门,最后一个以第 619 行结尾。

我正在尝试创建一个宏来隐藏 B 列为空的所有行(因为 A 列中总是有一些东西)。然而,工作表也有很多计算事物的公式和函数,它们一直在“打破”。

我录制了一个宏,我在其中过滤然后隐藏所有空白单元格。正如我所做的那样,这非常有效。但是当我执行宏重试它时,所有的公式和函数都出错了。我隐藏的所有行实际上都不包含函数中使用的数据,但函数确实会遍历所有单元格以检查它们的值。因此,它们是功能的一部分。

有谁知道我可以做到这一点的方法吗?

【问题讨论】:

  • 你的函数 UDF 是用 VBA 编码的吗?如果是,那么展示这些内容会很有用。如果它们是常规的工作表函数,那么显示它们也会很有用。简而言之,展示一些在隐藏行时会中断的实际示例会很有用。

标签: excel vba


【解决方案1】:

如何备份用于隐藏这些行的宏中的公式? 这将确保您在每次隐藏行之后建立这些引用时,公式不会与它们所引用的单元格一起使用。

这样做的一种方法是首先清除单元格的内容以避免覆盖现有数据的任何问题,然后用公式填充它们

With Workbooks("REFERENCE").Sheets("REFERENCE")
    'Code to hide rows

    .Range("B1:B35").ClearContents
    .Range("B1:B35").Formula = "=IF($A$1>B1,B1-B2,"FALSE")" 'example
End With

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多