Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 关闭文件夹中的所有文件_Excel_Excel 2010_Vba - Fatal编程技术网

Excel 关闭文件夹中的所有文件

Excel 关闭文件夹中的所有文件,excel,excel-2010,vba,Excel,Excel 2010,Vba,我有以下代码可以打开指定文件夹中的所有文件 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 &a

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

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
子OpenFiles()
将MyFolder设置为字符串
将MyFile设置为字符串
MyFolder=“\\ILAFILESERVER\Public\Documents\Renewable Energy\FiTs\1规划部门\Marks Tracker\Quality Control Reports”
MyFile=Dir(MyFolder&“\*.xlsx”)
当我的文件“”时执行此操作
工作簿。打开文件名:=MyFolder&“\”&MyFile
MyFile=Dir
环
端接头

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

您需要同时打开它们吗?因为除此之外:

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
子OpenFiles()
将MyFolder设置为字符串
将MyFile设置为字符串
MyFolder=“\\ILAFILESERVER\Public\Documents\Renewable Energy\FiTs\1规划部门\Marks Tracker\Quality Control Reports”
MyFile=Dir(MyFolder&“\*.xlsx”)
将wb设置为工作簿
当我的文件“”时执行此操作
设置wb=工作簿。打开文件名:=MyFolder&“\”&MyFile
“做事
wb.Close False“假将关闭而不保存
MyFile=Dir
环
端接头

您需要同时打开它们吗?因为除此之外:

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
子OpenFiles()
将MyFolder设置为字符串
将MyFile设置为字符串
MyFolder=“\\ILAFILESERVER\Public\Documents\Renewable Energy\FiTs\1规划部门\Marks Tracker\Quality Control Reports”
MyFile=Dir(MyFolder&“\*.xlsx”)
将wb设置为工作簿
当我的文件“”时执行此操作
设置wb=工作簿。打开文件名:=MyFolder&“\”&MyFile
“做事
wb.Close False“假将关闭而不保存
MyFile=Dir
环
端接头

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

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

尝试

工作簿。关闭

从Excel Visual Basic帮助文档中:

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

试一试

工作簿。关闭

从Excel Visual Basic帮助文档中:

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


Hello Dan-是的,它们必须同时打开,然后我会同时关闭它们。你也可以这样循环打开工作簿:对于工作簿中的每个wbk,我相信你可以转到wbk。close Hello Dan-是的,它们必须同时打开,然后我会同时关闭它们,你也可以像这样在打开的工作簿中循环:对于工作簿中的每个wbk,我确信你可以转到wbk.close,但要小心,因为这也会关闭包含运行VBA代码的工作簿,这可能不是你的意图。@JoelSpolsky谢谢你的警告,这是OP考虑的另一个选项。请小心,因为这将关闭包含运行VBA代码的工作簿,这可能不是您的意图。@ JoelsOLSKY感谢您的警告,这是OP考虑的另一个选项。