首页 > 解决方案 > 在目录的 Excel 中提供文件列表会减慢 excel

问题描述

我需要在 Excel 工作簿的目录中提供当前文件列表,并且一切都按要求工作,只是太慢了。我真的只需要在打开工作簿时检查它是否是最新的列表。执行此操作大约需要 11 秒,这是可以接受的,但问题是每次我对工作簿进行微小的编辑时,它都会不断重新检查(我猜是因为它是作为 Excel 表格引入的)。我使用提供的 rangetimer() 函数确定了我的工作簿中的延迟,这是唯一需要很长时间来计算的东西。我还应该说明,包含文件列表的表格最终在另一个工作表的单元格中使用,以提供数据验证下拉列表,但不相信这真的是问题所在。

我做了一些关于减少 Excel 计算时间的谷歌搜索,发现有一些 Excel 函数肯定是增加计算时间的罪魁祸首(描述为 volatile),其中三个(NOW、INDEX 和 ROW)用于提供我想要的功能在工作簿的这一部分。

到目前为止,我已经尝试了两种解决方案: 1. 在 VBA 属性窗口中强制完全计算设置为真 2. 将计算切换为手动。一旦我确定工作簿的这一部分是问题,我将其设置回自动,因为我通常不希望手动计算。

我在命名范围(TutorFileList)的“引用”框中的公式是:'''=FILES("\O008DC01\Shared\Tutor Qualifications*")&T(NOW())'''

我在excel表的每个单元格中的公式是:'''=IFERROR(INDEX(TutorFileList,ROW()-1),"")'''

我想要的是大约 11 秒的计算时间来找到这些文件,减少到只检查网络目录,而不是每次修改工作簿时都需要 11 秒的自动重新计算。

如果有更有效的方法来实现我正在做的事情,我准备重新设计东西,但我确实需要单元格中特定目录中文件下拉列表的功能。

非常感谢任何人对此的帮助。

标签: excel

解决方案


我通过将行数减少到大约 200 行而不是 500 行来解决我的问题。这使计算延迟回到了我可以忍受的大约一秒。


推荐阅读