Vba: як отримати дані з іншої книги


Ви можете використовувати такий синтаксис у VBA, щоб отримати дані з іншої книги:

 SubExtractData ()
    
    'turn off screen updates to make this run faster
    Application.ScreenUpdating = False
    
    'specify workbook we want to extract data from
    Set wb = Workbooks.Open(" C:\Users\bobbi\OneDrive\Desktop\my_data.xlsx ")
    
    'extract all data from Sheet1 and paste as new sheet in current workbook
    wb.Sheets(" Sheet1 ").Copy After:=ThisWorkbook.Sheets(1)
    
    'do not save any changes to workbook we extract data from
    wb.Close SaveChanges:=False
    
    'turn screen updating back on
    Application.ScreenUpdating = True
    
End Sub

Цей конкретний макрос відкриває робочу книгу під назвою my_data.xlsx , розташовану в такому місці:

C:\Users\Bob\Desktop\my_data.xlsx

Потім він копіює всі дані з аркуша під назвою Sheet1 у цю робочу книгу та копіює їх на аркуш безпосередньо після першого аркуша в нашій наразі активній робочій книзі.

Примітка . Рядок Application.ScreenUpdating = False повідомляє VBA виконувати цей процес у фоновому режимі, щоб він працював швидше.

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: вилучення даних з іншої книги за допомогою VBA

Припустімо, у нас відкрита така книга Excel, і ми її переглядаємо:

Тепер припустімо, що у нас є ще одна закрита книга, яка містить такі дані:

Ми можемо використати наступний макрос, щоб отримати дані з аркуша 1 цієї закритої робочої книги та вставити їх на новий аркуш безпосередньо після першого аркуша нашої наразі відкритої робочої книги:

 SubExtractData ()
    
    'turn off screen updates to make this run faster
    Application.ScreenUpdating = False
    
    'specify workbook we want to extract data from
    Set wb = Workbooks.Open(" C:\Users\bobbi\OneDrive\Desktop\my_data.xlsx ")
    
    'extract all data from Sheet1 and paste as new sheet in current workbook
    wb.Sheets(" Sheet1 ").Copy After:=ThisWorkbook.Sheets(1)
    
    'do not save any changes to workbook we extract data from
    wb.Close SaveChanges:=False
    
    'turn screen updating back on
    Application.ScreenUpdating = True
    
End Sub

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

Зауважте, що дані із закритої робочої книги було вилучено та вставлено як новий аркуш у нашу поточну активну робочу книгу.

Ви можете змінити назву нового аркуша, оскільки він ідентичний поточному аркушу.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

VBA: Як підрахувати кількість аркушів у робочій книзі
VBA: як вставити кілька стовпців
VBA: як вставити кілька рядків

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *