2016-03-05 92 views
1

我有很多工作簿,当我保存它们时(10-30分钟)特别慢。我知道他们很慢的原因是因为他们有很多INDEX,MATCH公式链接到另一个封闭的工作簿。Excel - 保存工作簿速度很慢

该工作簿需要19秒才能打开,约10秒钟时间重新计算日期更改(改进之前,重新计算时间约50秒)。我似乎无法加快工作簿的保存时间。

我试图找到一种方法来替换INDEX,MATCH公式的VBA代码,当检测到更改时导入数据,但显然无法从已关闭的工作簿导入数据,因此,为我工作。

我确实把公式设置为= INDEX(,MATCH(,,))然而,我已经改变了这个有一个MATCH列,然后很多INDEX公式,这已经将重新计算时间减少到1/5它原来是什么,开幕时间是一半,但如果有什么节省时间更长。

有没有人有任何建议?

+0

如果工作簿是源的链接也在开启/储存时打开,这应该会有很大的不同。还是你说这是不切实际的?就我个人而言,我总是确保在具有这种外部链接的文件中工作时,任何链接的工作簿都是同时打开的。 –

+0

让数据存储工作簿打开看起来似乎没有什么不同,我认为数据存储在打开时使用的资源量正在抵消打开数据存储所带来的任何好处。 – megatron77

+0

你说INDEX/MATCH公式?不是我信任的阵列版本?我们在谈论多少这样的公式?工作簿中的任何易失性函数(例如OFFSET,INDIRECT,TODAY,NOW)? –

回答

0

检查此链接了解如何运行宏时,单元格的值的变化:

https://support.microsoft.com/en-us/kb/213612

从那里,你可以有宏打开新的工作簿,添加INDEX MATCH公式单元格在原始工作簿,复制并粘贴为值,然后关闭其他工作簿。这样你的文件就是所有的值而不是公式,这将显着提高速度。

要提高宏观性能的同时运行,将其添加到代码的开头:

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

然后将其添加到末尾:

Application.ScreenUpdating = True 
Application.DisplayAlerts = True 
+0

我会详细介绍一下我所能达到的保存时间,数据存储工作簿远远大于我遇到的工作簿,它只是没有任何外部链接,但打开和关闭它仍需要一段时间(1分钟打开,1分钟保存并关闭),这应该仍然比我正在经历的保存时间更快,但会增加我的重新计算时间,因为每次重新计算大量数据商店将不得不被打开,目前的重新计算时间在10秒左右。 – megatron77

+0

只是一些背景知识,许多工作人员在只读模式下使用这些电子表格,他们不必保存工作簿,但他们确实需要快速重新计算。我是唯一一个在更改完成时需要保存工作簿的人,所以我不能将保存时间换算成重新计算时间。 – megatron77

+0

我想这取决于工作簿中给单元格值改变的频率。如果非常罕见,我的答案应该是一个不错的选择。如果频繁,那么你可能需要一个单独的宏,你可以手动启动。 另外,从我的理解,听起来像数据存储工作簿上的枢轴表可能是一个更好的选择,而不是一吨'INDEX MATCH'公式 –