По -долу ще разгледаме програма в Excel VBA че импортира листове от други Excel файлове в един Excel файл.
Изтеглете Book4.xlsx, Book5.xlsx и ги добавете към „C: \ test \“
Ситуация:
Добавете следните кодови редове към командния бутон:
1. Първо, декларираме две променливи от тип String, обект на работен лист и една променлива от тип Integer.
Dim директория като String, fileName As String, лист като работен лист, общо като цяло число
2. Изключете актуализирането на екрана и показването на сигнали.
Application.ScreenUpdating = False
Application.DisplayAlerts = False
3. Инициализирайте директорията с променливи. Използваме функцията Dir, за да намерим първия *.xl ?? файл, съхраняван в тази директория.
директория = "c: \ test \"
fileName = Dir (директория & "*.xl ??")
Забележка: Функцията Dir поддържа използването на заместващи символи с множество знаци (*) и единични (?) За търсене на всички различни видове файлове на Excel.
4. Променливата fileName сега съдържа името на първия Excel файл, намерен в директорията. Добавете цикъл „До докато“.
Do While име на файл ""
Цикъл
Добавете следните кодови редове (на 5, 6, 7 и 8) към цикъла.
5. Няма прост начин за копиране на работни листове от затворени Excel файлове. Затова отваряме файла Excel.
Workbooks.Open (директория и име на файл)
6. Импортирайте листовете от файла Excel в import-sheet.xlsm.
За всеки лист в работни книги (fileName) .Работни листове
total = Работни книги ("import-sheets.xlsm"). Worksheets.count
Работни книги (име на файл). Работни листове (име.лист). Копиране _
след: = Работни книги ("import-sheets.xlsm"). Работни листове (общо)
Следващият лист
Обяснение: променливата total поддържа проследяване на общия брой работни листове на import-sheet.xlsm. Използваме метода Copy на обекта Worksheet, за да копираме всеки работен лист и да го поставим след последния работен лист на import-sheets.xlsm.
7. Затворете файла Excel.
Работни книги (име на файл). Затвори
8. Функцията Dir е специална функция. За да получите другите файлове на Excel, можете да използвате функцията Dir отново без аргументи.
fileName = Dir ()
Забележка: Когато повече имена на файлове не съвпадат, функцията Dir връща низ с нулева дължина (""). В резултат на това Excel VBA ще напусне цикъла Do While.
9. Включете актуализирането на екрана и показването на предупреждения отново (извън цикъла).
Application.ScreenUpdating = Вярно
Application.DisplayAlerts = Вярно
10. Тествайте програмата.
Резултат: