Vba Excel-保存工作簿非常慢

Vba Excel-保存工作簿非常慢,vba,excel,Vba,Excel,我有很多工作簿,保存它们时速度特别慢(10-30分钟)。我知道他们速度慢的原因是因为他们有很多索引、匹配公式,它们链接到另一个封闭的工作簿 更改日期时,打开工作簿需要19秒,重新计算大约需要10秒(改进之前,重新计算时间约为50秒)。我似乎无法加快工作簿的保存时间 我试图找到一种方法来替换索引,用VBA代码匹配公式,当检测到更改时导入数据,但显然不可能从关闭的工作簿导入数据,因此这对我不起作用 我确实将公式设置为=INDEX(,MATCH(,),但是我将其更改为有一个匹配列,然后是许多索引公式,

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

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

我试图找到一种方法来替换索引,用VBA代码匹配公式,当检测到更改时导入数据,但显然不可能从关闭的工作簿导入数据,因此这对我不起作用

我确实将公式设置为=INDEX(,MATCH(,),但是我将其更改为有一个匹配列,然后是许多索引公式,这将重新计算时间减少到原来的五分之一,打开时间减少了一半,但如果有任何变化,则节省时间更长


有人有什么建议吗?

查看此链接,了解如何在单元格值更改时运行宏:

从那里,您可以让宏打开新工作簿,将
索引匹配
公式添加到原始工作簿的单元格中,复制并粘贴为值,然后关闭另一个工作簿。这样,您的文件就是所有的值,而不是公式,这将大大提高速度

要在宏运行时提高其性能,请将以下内容添加到代码开头:

Application.ScreenUpdating = False
Application.DisplayAlerts = False
然后在末尾添加以下内容:

Application.ScreenUpdating = True
Application.DisplayAlerts = True

检查此链接,了解如何在单元格值更改时运行宏:

从那里,您可以让宏打开新工作簿,将
索引匹配
公式添加到原始工作簿的单元格中,复制并粘贴为值,然后关闭另一个工作簿。这样,您的文件就是所有的值,而不是公式,这将大大提高速度

要在宏运行时提高其性能,请将以下内容添加到代码开头:

Application.ScreenUpdating = False
Application.DisplayAlerts = False
然后在末尾添加以下内容:

Application.ScreenUpdating = True
Application.DisplayAlerts = True


如果作为链接来源的工作簿在打开/保存时也处于打开状态,则会产生很大的不同。或者你是说这是不切实际的?就我个人而言,在使用此类外部链接的文件中工作时,我始终确保所有链接的工作簿都是同时打开的。不幸的是,打开数据存储工作簿似乎没有什么不同,我认为数据存储在打开时使用的资源量抵消了打开它所带来的任何好处。你说索引/匹配公式?我相信不是数组版本吧?我们讨论了多少这样的公式?工作簿中是否有易变函数(例如偏移、间接、今天、现在)?没有间接或偏移函数,只需直接索引和匹配即可根据日期进行查找。我有大量索引和匹配公式的真正原因是因为我需要汇总索引和匹配所提取的数据,这听起来有点疯狂,我知道,但索引和匹配在数据存储关闭而SUMIFS不关闭时工作,数据存储必须打开,只有SUMIFS才能工作,因此,我使用索引和匹配,然后使用SUMIFS来提取数据。也许这个过程是错误的,有更好的方法吗?756612索引匹配公式如果作为链接来源的工作簿在打开/保存时也是打开的,那么应该会有很大的不同。或者你是说这是不切实际的?就我个人而言,在使用此类外部链接的文件中工作时,我始终确保所有链接的工作簿都是同时打开的。不幸的是,打开数据存储工作簿似乎没有什么不同,我认为数据存储在打开时使用的资源量抵消了打开它所带来的任何好处。你说索引/匹配公式?我相信不是数组版本吧?我们讨论了多少这样的公式?工作簿中是否有易变函数(例如偏移、间接、今天、现在)?没有间接或偏移函数,只需直接索引和匹配即可根据日期进行查找。我有大量索引和匹配公式的真正原因是因为我需要汇总索引和匹配所提取的数据,这听起来有点疯狂,我知道,但索引和匹配在数据存储关闭而SUMIFS不关闭时工作,数据存储必须打开,只有SUMIFS才能工作,因此,我使用索引和匹配,然后使用SUMIFS来提取数据。也许是这个过程错了,还有更好的方法吗?756612索引匹配公式我来试试,看看我能节省多少时间,数据存储工作簿比我遇到麻烦的工作簿大得多,它只是没有任何外部链接,但打开和关闭它仍然需要一段时间(打开1分钟,保存和关闭1分钟),这应该比我正在经历的节省时间还要快,但会增加我的重新计算时间,因为每次我重新计算时,都必须打开大型数据存储,而当前的重新计算时间大约为10秒。只是有一点背景,很多人在工作中以只读模式使用这些电子表格您不必保存工作簿,但他们确实需要它来快速重新计算。在进行更改时,我是唯一需要保存工作簿的人,因此我不能以节省时间换取重新计算时间。我想这取决于工作簿中单元格值的更改频率,这会给您带来麻烦。如果非常罕见,我的答案应该是一个不错的选择打开。如果经常使用,那么您可能需要一个单独的宏,您可以手动启动。此外,据我所知,数据存储工作簿上的透视表可能比大量的
索引匹配
公式更好。尽管我有excel经验,但我经常使用透视表。我如何使用它影响