我目前正在尝试创建一个宏,它将转到一个目录,打开一个工作簿(目前有38个,最终总共52个),过滤两列,得到总数(重复这4次),然后关闭工作簿.目前,我的应用程序需要大约7分钟来处理当前的38个工作簿.
我怎样才能加快速度呢?我已经禁用了屏幕更新,事件,并且我将计算方法更改为xlCalculationManual.我不知道它是否是常见做法,但我看到有人询问如何在不打开工作簿的情况下访问工作簿,但我总是提出关闭屏幕更新的建议,我已经这样做了.
当我在调试模式下运行它时,Workbooks.Open()最多可能需要10秒.文件目录实际上在公司网络上,但访问文件通常几乎不需要任何时间,不到5秒.
工作簿中的数据可以包含相同的点但处于不同的状态.我不认为将所有数据合并到一个工作簿中是可能的.
我将尝试直接细胞参考.一旦我得到一些结果,我会更新我的帖子.
Private UNAME As String
Sub FileOpenTest()
Call UserName
Dim folderPath As String
Dim filename As String
Dim tempFile As String
Dim wb As Workbook
Dim num As Integer
Dim values(207) As Variant
Dim arryindex
Dim numStr As String
Dim v As Variant
Dim init As Integer
init = 0
num = 1
arryindex = 0
numStr = "0" & CStr(num)
'Initialize values(x) to -1
For Each v In values
values(init) = -1
init = init …Run Code Online (Sandbox Code Playgroud)