如何清除Excel中(仅)隐藏单元格的内容(而不删除它们)?

时间:2019-05-07 20:28:05

标签: excel vba

(上下文:我对在Excel中编写复杂公式非常了解,但是对VBA有了非常基本的了解。令我惊讶的是,我找不到自己要解决的问题的解决方案,这使我们不知道Excel中是否有某些东西使其无法执行)。我想想象很多其他人会发现这样做是有益的,因为我敢肯定很多人会Excel肿的Excel模板。

我有一个Excel模板,其中包含跨多个工作表的多个单元格,这些工作表具有预填充的公式,这些公式基于将一组不断变化的数据转储到一个工作表中而进行更新。我将模板用于不同的“项目”,这些项目并不都需要使用预先填充了公式的所有单元格。因此,一旦导入新数据,某些不需要的行和列将被隐藏(手动或使用VBA宏),因为不需要它们。

我想找到一种方法来清除所有隐藏单元格中的内容(即公式),以减小整体文件大小。我的文件很快超过了100 MB,但是也许包含公式的单元格中有80%未被用于任何特定项目,并且可以清除。

我不是VBA专家,但我已经通过Google搜索了此内容,认为这将是VBA的简单片段,但是经过数小时深入研究Google搜索结果排名之后,我还没有发现了一个好的结果,使我朝着解决方案的方向前进。

关于如何使用VBA来删除隐藏的行或列,有很多内容,但是我无法在工作簿中做到这一点(我需要将行和列留给其他人使用有效的公式和格式)。我只想删除隐藏单元格中未使用的公式。

我了解我可以使用以下内容清除内容和/或清除格式

Sheets("Test").Range("A1:C3").ClearContents
Sheets("Test").Range("A1:C3").ClearFormats

我用这行来隐藏单元格:

Range.Hidden = True

那么,如何将ClearContents函数的范围定义为隐藏单元格(或使其仅作用于隐藏单元格)?而且,如何有效地执行此操作...我了解到,运行循环可能会花费大量时间,因为它会遍历行或列以执行任务。

我想有一个允许该过程的解决方案:

  1. 导入新数据
  2. 隐藏不需要的行和列
  3. 按下宏按钮以清除所有工作表中特定Range(A3:TY53)内所有单元格中的所有公式

任何帮助或指出我自己无法找到的现有解决方案,将不胜感激。

1 个答案:

答案 0 :(得分:2)

要清除隐藏单元格的内容,请执行以下操作:

$ sudo port install clang-8.0
$ clang
clang                            clang-check-mp-7.0               clang-format-mp-8.0              clang-offload-bundler-mp-7.0     clang-reorder-fields-mp-7.0
clang++                          clang-check-mp-8.0               clang-func-mapping-mp-7.0        clang-offload-bundler-mp-8.0     clang-reorder-fields-mp-8.0
clang++-mp-7.0                   clang-cl-mp-7.0                  clang-import-test-mp-7.0         clang-query-mp-7.0               clang-tidy-mp-7.0
clang++-mp-8.0                   clang-cl-mp-8.0                  clang-import-test-mp-8.0         clang-query-mp-8.0               clang-tidy-mp-8.0
clang-apply-replacements-mp-7.0  clang-cpp-mp-7.0                 clang-include-fixer-mp-7.0       clang-refactor-mp-7.0            clangd-mp-7.0
clang-apply-replacements-mp-8.0  clang-cpp-mp-8.0                 clang-include-fixer-mp-8.0       clang-refactor-mp-8.0            clangd-mp-8.0
clang-change-namespace-mp-7.0    clang-extdef-mapping-mp-8.0      clang-mp-7.0                     clang-rename-mp-7.0              clangd-xpc-test-client-mp-8.0
clang-change-namespace-mp-8.0    clang-format-mp-7.0              clang-mp-8.0                     clang-rename-mp-8.0