目标在VBA上搜索特定工作表(禁用其他打开文件中的计算)

时间:2011-10-20 19:07:44

标签: vba

我有一个关于在Excel工作表中运行VBA中的目标搜索的快速问题。我注意到当我在同一个excel会话中打开其他工作簿时,我试图运行的工作簿/工作表中的goalseek需要更长时间(我猜这是因为excel会计算其他打开的工作簿。

有没有办法禁用excel来计算其他打开的工作簿?

2 个答案:

答案 0 :(得分:0)

Excel计算在应用程序级别(所有打开的工作簿)完成。因此,您应该将计算切换到手动计算模式,运行goalseek,然后切换回自动或使用Application.Calculate。
即使这样,只要有额外的工作簿打开,这会给Excel带来更大的开销,因此会更慢。

答案 1 :(得分:0)

它也可以通过几种方式绕过这个问题(两者都有缺点) 1.将所有工作表的.EnableCalculation属性设置为False,这些工作表不涉及将目标搜索目标单元格链接到目标搜索单元格的公式(包括其他工作簿中的工作表)
(这是我的FastExcel产品中用于Active Workbook计算模式的方法。)
2.编写自己的VBA goalseek例程,并使用Range.Calculate计算2个goalseek单元格中路径中的所有单元格,或者如果它在一个工作表上的所有单元格都使用Worksheet.calculate