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: як вставити кілька рядків