繁体   English   中英

关闭文件夹中的所有文件

[英]Close all files in a folder

我有以下代码可以打开指定文件夹中的所有文件

Sub OpenFiles()
    Dim MyFolder As String
    Dim MyFile As String
    MyFolder = "\\ILAFILESERVER\Public\Documents\Renewable Energy\FiTs\1 Planning Department\Marks Tracker\Quality Control Reports"
    MyFile = Dir(MyFolder & "\*.xlsx")

    Do While MyFile <> ""
        Workbooks.Open Filename:=MyFolder & "\" & MyFile
        MyFile = Dir
    Loop
End Sub

是否可以使用类似的代码关闭文件夹中的所有文件。 在此先感谢您提供的任何帮助。

Workbooks.Open将返回对工作簿指针的引用。 打开工作簿后,立即将其保存在Collection中(使用Collection.Add)。 当您要关闭所有工作簿时,请遍历集合(使用For Each)并关闭每个元素。 然后从集合中删除所有元素。

尝试

Workbooks.Close

从Excel Visual Basic帮助文档:

本示例关闭所有打开的工作簿。 如果任何打开的工作簿中有更改,Microsoft Excel将显示相应的提示和对话框以保存更改。

您是否需要同时打开它们? 因为否则:

Sub OpenFiles()
    Dim MyFolder As String
    Dim MyFile As String
    MyFolder = "\\ILAFILESERVER\Public\Documents\Renewable Energy\FiTs\1 Planning Department\Marks Tracker\Quality Control Reports"
    MyFile = Dir(MyFolder & "\*.xlsx")
    Dim wb As Workbook

    Do While MyFile <> ""
        Set wb = Workbooks.Open Filename:=MyFolder & "\" & MyFile
        'Do stuff
        wb.Close False 'The false will close without saving
        MyFile = Dir
    Loop
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM