访问中的VBA代码可循环访问文件夹中的所有excel文件,打开,保存和关闭它们

时间:2018-08-23 13:47:17

标签: vba excel-vba access-vba

我正在研究一个vba脚本,我可以在Access中部署该脚本,该脚本可以打开,保存和关闭特定文件夹中的所有excel文件。

到目前为止,我有这段代码,可以正常工作,但是有一些问题。一个是它实际上明显地打开了excel,并且在循环完成之后,仍然打开了一个空的,看起来很奇怪的excel。与此同时,我还注意到,即使没有打开excel实例,在taskmanager中的进程下,这也会导致运行excel进程。

第二,由于格式是xls,所以我正在处理excel兼容模式,因此不确定文件扩展名和格式是否相同,有时我会收到错误消息,因此不确定是否找到了最佳解决方案。

我只是想对代码进行一些常规改进。

这是我的代码:

Sub demo()
Dim directory As String, fileName As String
Dim Mywb As Workbook
Dim app As New Excel.Application
app.Visible = True
directory = "C:\Users\test\FolderA\"
fileName = Dir(directory & "*.xls")

Do While fileName <> ""
Workbooks.Open (directory & fileName)
fileName = Dir()
ActiveWorkbook.CheckCompatibility = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Loop
End Sub

1 个答案:

答案 0 :(得分:2)

我将解决看起来很“古怪”的Excel。

您希望app.Quit最后确保关闭打开的Excel应用程序。

否则,由于资源与未关闭的应用程序实例捆绑在一起,最终会导致性能下降并最终崩溃。