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")

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

是否有可能有一个类似的代码来关闭文件夹中的所有文件。非常感谢您在此问题上提供的任何帮助。

4

3 回答 3

3

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

于 2012-06-26T14:27:45.920 回答
1

尝试

Workbooks.Close

从 Excel Visual Basic 帮助文档:

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

于 2012-06-26T17:35:26.677 回答
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
于 2012-06-26T14:23:32.167 回答