关闭文件夹中的所有文件

时间:2012-06-26 14:16:26

标签: excel-vba excel-2010 vba 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")

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

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

尝试

Workbooks.Close

从Excel Visual Basic帮助文档:

  

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

答案 2 :(得分:0)

你需要同时打开它们吗?因为否则:

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