【发布时间】:2016-05-10 09:47:51
【问题描述】:
我尝试打开指定文件夹中的所有*.xlsx 文件并将文件句柄存储在一个数组中。
我的代码是这样的
Dim Files() As Workbook
ReDim Files(Count)
File = Dir(Path & "\*.xlsx")
Count = 0
Do While File <> ""
Set Files(Count) = Workbooks.Open(Path & File, , True)
Count = Count + 1
File = Dir()
Loop
代码似乎可以工作,但是,当我第二次运行它(再次点击运行按钮)时,我得到一个错误号 13。
调试代码我把问题跟踪到了一行
Set Files(Count) = Workbooks.Open(Path & File, , True)
由于我对 vba 不熟悉,我想我没有以正确的方式做到这一点......
将文件句柄存储到数组中特定文件夹中的所有文件的更好方法是什么?
【问题讨论】:
-
...也许程序只是错过了要关闭的工作簿...我添加了
Files(Count).Close()解决了这个问题。 -
但是那样你会错过刚刚存储在
Files()中的Workbook对象引用...
标签: arrays vba file-handling filehandle