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 に答える