/ / Файлове в директория в

Файлове в директория в Excel VBA

По - долу ще разгледаме програма в Excel VBA че цикли през всички затворени работни книги и работни листове в указател, и показва всички имена.

Изтеглете Book1.xls, Book2.xls, Book3.xls, Book4.xls и Book5.xls и ги добавете към "C: test"

Ситуация:

Файлове в директорски пример

Добавете следните кодови линии към командния бутон:

1. Първо, декларираме две променливи от типа String, обект на Работен лист и две променливи от тип Integer.

Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer

2. За да избегнете трептенето на екрана, изключете актуализирането на екрана.

Application.ScreenUpdating = False

3. Инициализирайте променливата директория. Използваме функцията Dir, за да открием първия * .xl ?? файл, съхраняван в тази директория.

directory = "c:test"
fileName = Dir(directory & "*.xl??")

Забележка: функцията Dir поддържа използването на заместващи символи с няколко знака (*) и единични знаци (?) За търсене на всички различни видове файлове Excel.

4. Променливата fileName сега съдържа името на първия Excel файл, намиращ се в директорията. Добавете Do While Loop.

Do While fileName <> ""

Loop

Добавете следните кодови линии (на 5, 6, 7, 8 и 9) към бримката.

5. Инициализирайте променливите от тип Integer и добавете името на файла Excel в първата колона на ред i.

i = i + 1
j = 2
Cells(i, 1) = fileName

6. Няма лесен начин за извличане на данни (или имена на листове) от затворени Excel файлове. Ето защо, ние отваряме Excel файла.

Workbooks.Open (directory & fileName)

7. Добавете всички имена на листа на файла Excel в другите колони на ред i.

For Each sheet In Workbooks(fileName).Worksheets
    Workbooks("files-in-a-directory.xls").Worksheets(1).Cells(i, j).Value = sheet.Name
    j = j + 1
Next sheet

8. Затворете файла в Excel.

Workbooks(fileName).Close

9. Функцията Dir е специална функция. За да получите другите Excel файлове, можете отново да използвате функцията Dir без аргументи.

fileName = Dir()

Забележка: когато не съвпадат имена на файлове, функцията Dir връща низ с нулева дължина (""). В резултат на това Excel VBA ще напусне линия Do While.

10. Включете актуализацията на екрана отново (извън цикъла).

Application.ScreenUpdating = True

11. Изпробвайте програмата.

Резултат:

Файлове в директория в Excel VBA

Също така се чете: