【问题标题】:Forcing Cells to recalculate in Excel using Macros使用宏强制单元格在 Excel 中重新计算
【发布时间】:2014-03-05 16:24:05
【问题描述】:

我目前正在处理一个名为 Calendar.xlsm 的 Excel 电子表格 我有 Excel2010。

我的工作簿有以下工作表:

  1. 封面

  2. 日历

  3. 颜色检测

  4. 可打印

“颜色检测” 工作表使用用户定义函数来检测“日历”工作表上单元格的颜色,并根据该颜色返回一个数字特定细胞;例如,如果Calendar!C3 的填充颜色为"light green",则Colour Detection!C3 = 43

为了完整起见,UDF 称为 ColorIndex,由 Bob Phillips 编写。

然后,我使用条件格式根据“颜色检测”中存储的数字为我的“Printable”工作表中的单元格着色。

当“日历”表上的颜色发生变化时,我的问题就开始了,通常发生这种情况时,“颜色检测”保持不变,除非我手动选择单元格并按回车键。

我对 Excel 如何在该领域与 Visual Basic 配合使用的知识非常有限,但正在不断增长。

我对解决方案的第一个想法是记录一个宏,在该宏中我选择了每个单元格并逐个点击返回。然后,我将宏附加到 “封面” 上名为“计算”的按钮上。这立即不起作用,因为大约有 800 个单元使用此 UDF。

在尝试此操作时,我以为我偶然发现了解决方案,但我注意到如果我将解决方案仅应用于几个单元格,则整个工作表似乎都会更新。然后我应用了这个并测试了几次,它起作用了。然后,我将我的作品作为我确信的杰作展示给朋友,在向他们展示时,一切都崩溃了,只有我在宏中选择的单元格更新了。

接下来我尝试添加该行

Application.Volatile

我的 UDF,但这并没有什么不同。

我的问题是如何通过简单的操作(例如按下重新计算按钮)轻松强制工作表中的每个单元格进行更新?

【问题讨论】:

    标签: excel cells forcing


    【解决方案1】:

    尝试 Ctrl-Alt-F9 这会强制计算工作簿中的每个公式。或者您可以在 workbook_Open 事件中将 workbook.forcefullcalculation 设置为 True。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-30
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多