【问题标题】:Find cells referring to blank cells查找引用空白单元格的单元格
【发布时间】:2011-01-29 22:34:25
【问题描述】:

在 Excel VBA 中查找公式引用空白单元格的单元格的最佳方法是什么。我想删除所有引用空白单元格的单元格。

更具体地说,我有两张纸:一张包含实际值:

Product   Month1  Month2 Month3
Sample1     1        3     5
Sample2     5        7     6
Sample3     3        8     2

另一种是汇总视图,用公式对数值进行求和,公式如下:

Product       Month1
=values!A2    =SUM(values!B2:D2)
=values!A3    =SUM(values!B3:D3)
=values!A4    =SUM(values!B4:D4)
=values!A5    =SUM(values!B5:D5)

TOTAL         =SUM(values!B:D)

现在在前面的例子中,最后一个 raw 指的是一个空白行,即第五行。 Excel 会将这些单元格显示为“0”。是否有一种机制可以在 VBA 中删除这些单元格?

请注意,我更喜欢删除行,以使 TOTAL 行接近实际的最后一个值。否则,总计行可能与其余值相距甚远。此外,包含公式的空白单元格可能会导致 Excel 文件变大。

编辑:澄清了将单元格保持空白的问题。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    是否总是最后一行,可以评估为 0? 如果是这样,您可以使用 IF 语句,例如:

    =IF(SUM(values!B2:D2) > 0 ,values!A2,"") =IF(SUM(values!B2:D2),SUM(values!B2:D2),"")

    不需要 VBA...

    【讨论】:

    • 我更新了问题,以澄清为什么我不喜欢有空白单元格。
    【解决方案2】:

    我认为 Autofilter 是这里的方法。如果 A 列中有零,我猜你想隐藏整行。你说删除,但我想知道隐藏是否是更好的方法。

    在范围上放置一个过滤器,然后为 A 列选择除 0 之外的所有内容。

    【讨论】:

      【解决方案3】:

      您无需编写代码即可删除行。我会使用 Arnoldiuss 解决方案的变体。

      当月总使用量:

      =IF(LEN(values!A2)>0,SUM(B2:D2),"")

      这样,您可以简单地填写所有公式,而不必担心引用不存在的产品。

      【讨论】:

        【解决方案4】:

        根据您的编辑,我猜数据透视表适合您的需求。 将产品添加到行标签并将以下计算字段添加到值

        =SUM(Month1,Month2,Month3)

        然后添加一个值过滤器 > 0

        我不建议删除“公式工作表”中的行,因为缺少引用,以备将来使用该系列会被破坏。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-05
          • 1970-01-01
          • 2018-03-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多