我有以下代码打开指定文件夹中的所有文件
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
是否可以使用类似的代码来关闭文件夹中的所有文件。非常感谢您就此事提供的任何帮助。
答案 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