2012-06-26 6 views
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 

Можно ли иметь такой же код, который закрывает все файлы в папке. Большое спасибо заранее за любую помощь, оказанную по этому вопросу.

ответ

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 
+0

Здравствуйте Dan - Да, все они должны быть открыты в то же время, а затем я хотел бы посмотреть, чтобы закрыть их все одновременно –

+1

и вы можете проходной открытые рабочие книги, как это: Для каждого ВБК в книгах и я уверен, что вы можете пойти wbk.Close – Dan

3

Workbooks.Open вернет ссылку на указатель рабочей книги. Сохраните это в коллекции (используя Collection.Add), как только вы откроете книгу. Когда вы хотите закрыть все книги, выполните итерацию через коллекцию (используя для каждого) и закройте каждый элемент. Затем удалите все элементы из коллекции.

+0

+ 1 Хорошее предложение :) –

1

Попробуйте

Workbooks.Close

От базовой справочной документации Excel Визуальный:

Этот пример закрывает все открытые книги. Если в любой открытой книге есть изменения, Microsoft Excel отображает соответствующие подсказки и диалоговые окна для сохранения изменений.

+1

Будьте осторожны, потому что это тоже закроет книгу, содержащую код VBA, что может и не быть вашим намерением. –

+0

@JoelSpolsky Спасибо за оговорку, это еще один вариант для OP. – JimmyPena

Смежные вопросы