/ / Импортиране на таблици с помощта на Excel VBA

Импортиране на листове с помощта на Excel VBA

По - долу ще разгледаме програма в Excel VBA че внася листове от други Excel файлове в един Excel файл.

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

Ситуация:

Импортиране на листове с помощта на Excel VBA

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

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

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

2. Изключете актуализирането на екрана и показването на сигнали.

Application.ScreenUpdating = False
Application.DisplayAlerts = 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) към бримката.

5. Няма лесен начин за копиране на работни листове от затворени Excel файлове. Затова отворим файла в Excel.

Workbooks.Open (directory & fileName)

6. Импортирайте листовете от Excel файл в import-sheet.xls.

For Each sheet In Workbooks(fileName).Worksheets
    total = Workbooks("import-sheets.xls").Worksheets.count
    Workbooks(fileName).Worksheets(sheet.Name).Copy _
    after:=Workbooks("import-sheets.xls").Worksheets(total)
Next sheet

Обяснение: променливата обща проследява общия брой работни листове на import-sheet.xls. Използваме метода "Копиране" на обекта "Работен лист", за да копирате всеки работен лист и да го поставите след последния работен лист на import-sheets.xls.

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

Workbooks(fileName).Close

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

fileName = Dir()

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

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

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Тествайте програмата.

Резултат:

Резултат на импортираните листове

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