【问题标题】:Excel option to calculate values for each cell only onceExcel 选项仅计算每个单元格的值一次
【发布时间】:2013-02-13 18:26:02
【问题描述】:

我有一个项目,其要求包括循环引用(只是为了让您知道我为什么故意将它放在我的工作簿中)。

在文档中,我希望圆圈中的每个单元格只计算一次。我知道这可以通过 Windows 按钮 > Excel 选项 > 公式 > 启用迭代计算来实现,但我无法对接触工作簿的每个人强制执行该选项。有没有办法(通过 VBA,也许,或者单元格/工作表选项?)让单元格只计算一次它的值?

对我来说听起来很遥远,但我真的很感谢你的帮助 :)

【问题讨论】:

  • 您应该尝试将计算转为手动,但不要选中保存前重新计算,然后启用迭代计算,将数字设置为 1,最大更改为零。
  • @chuff 将计算设置为手动将不起作用,因为单元格是脚本输入的 - 所以它们需要自动计算,但只需要一次。不过,谢谢!
  • 只是出于好奇:在什么情况下需要循环引用——然后只计算一次迭代?

标签: vba excel


【解决方案1】:

类似这样的:

Private Sub Workbook_Open()
With Application
    .Iteration = True
    .MaxIterations = 1 '<-- or whatever the maximum allowable # you want
    .MaxChange = 0.001  '<-- modify as necessary, or remove if desired
End With
End Sub

Private Sub Workbook_Close()
    Application.Iteration = False
End Sub

将这些放在工作簿模块中。

这是 Google 上最早的答案之一,如果您自己进行任何搜索,您会发现:

http://www.mrexcel.com/forum/excel-questions/444155-need-macro-enable-iterative-calculation.html

【讨论】:

  • 我确实是自己搜索的,你匿名指责真的很粗鲁。出于好奇,您搜索了什么来找到该链接?显然我没有很好地向 Google 解释我的问题 :) 谢谢你的帮助!
  • Google 搜索“VBA 启用迭代计算 Excel”,这是第二个结果。 :) 第三个结果也有一些关于这是应用程序级别设置的重要信息(即,在一个文件上设置它会影响其他打开的工作簿)。为避免将来出现类似的谴责,最好展示一些努力,而不是简单地提出开放式问题。
  • 感谢您提供的额外帮助 - 除了没有在 Google 上搜索该内容的大脑放屁之外,没有任何借口!我还在这里阅读了关于使帖子简短而有趣的对话,因此这一直影响着我提问的方式。我确实为这个问题的研究付出了努力,我只是没有展示这种努力。再次感谢您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多