Зміст
В Microsoft Excel , Макроси VBA дозволяє легко вирішувати широкий спектр завдань. Якщо ми хочемо скопіювати дані з іншої книги, не відкриваючи її, ми можемо легко це зробити за допомогою Excel VBA У цій статті ви дізнаєтеся Excel VBA копіювати дані з іншої книги, не відкриваючи її.
Завантажити Практичний посібник
Ви можете завантажити робочий зошит та потренуватися за ним.
Копіювання іншої книги Дані.xlsm3 Різні способи копіювання даних з іншої книги без відкриття за допомогою Excel VBA
Іноді нам потрібні дані з якоїсь попередньої книги. Якщо ми поспішаємо і нам потрібні дані негайно, не відкриваючи книгу, ми можемо скористатися кнопкою Excel VBA За допомогою Excel VBA ми можемо швидко скопіювати дані з інших книг, для цього нам просто потрібно знати місце розташування цієї книги.
Для копіювання даних будемо використовувати ім'я робочої книги Продукт_Деталі І ми хочемо скопіювати діапазон даних ( B4:E10 Набір даних, який ми хочемо скопіювати, містить декілька товарів, їх продажну ціну, собівартість товарів та валовий прибуток. Розглянемо різні критерії для копіювання даних з іншої книги.
1. Копіювання даних аркуша з іншої книги без відкриття за допомогою Excel VBA
Ми можемо скопіювати дані з аркуша, виконавши такі дії VBA Для цього нам необхідно пройти наступні кроки.
КРОКИ:
- По-перше, зверніться до Розробник вкладку зі стрічки.
- Після цього натисніть на кнопку Visual Basic для відкриття Редактор Visual Basic .
- Ще один спосіб відкрити Редактор Visual Basic це просто натиснути Alt + F11 .
- Або натисніть правою кнопкою миші на аркуші, потім виберіть Переглянути код .
- А тепер запишіть VBA код нижче.
Код VBA:
Sub Copy_Data_from_Another_Workbook() Dim wb As Workbook Dim newwb As Workbook Dim rn1 As Range Dim rn2 As Range Set wb = Application.ActiveWorkbook With Application.FileDialog(msoFileDialogOpen) .Filters.Clear .Filters.Add "Excel 2007-13", "*.xlsx; *.xlsm; *.xlsa" .AllowMultiSelect = False .Show If .SelectedItems.Count> 0 Then Application.Workbooks.Open.SelectedItems(1) Set newwb = Application.ActiveWorkbook Set rn1 = Application.InputBox(prompt:="Виберіть діапазон даних", Default:="A1", Type:=8) wb.Activate Set rn2 = Application.InputBox(prompt:="Виберіть діапазон призначення", Default:="A1", Type:=8) rn1.Copy rn2 rn2.CurrentRegion.EntireColumn.AutoFit newwb.Close False End If End With End SubEnd With End Sub
- Нарешті, запустіть код, натиснувши кнопку Запустити заміну з іншого боку, натиснути комбінацію клавіш F5 ключ для запуску коду.
ПРИМІТКА: Модифікувати код не потрібно, достатньо скопіювати та вставити код.
- Запустивши код Відкрити файл з'явиться вікно на вашому комп'ютері.
- Після цього натисніть на робочу книгу, для якої потрібно зібрати дані.
- Потім натисніть на кнопку ГАРАЗД. кнопку.
- Тепер виберіть дані з вихідного файлу, перетягнувши їх за діапазон B5:E10 а потім натисніть ГАРАЗД. .
- Після вибору діапазону даних. Тепер виберіть діапазон призначення, куди ви хочете помістити дані.
- І натисніть ГАРАЗД. .
- Зрештою, це призведе до закриття вихідного файлу, а дані будуть скопійовані у файл призначення.
Читати далі: Excel VBA: копіювання діапазону в іншу книгу
Схожі читання
- Як вставити з буфера обміну в Excel за допомогою VBA
- Вимкнення копіювання та вставки в Excel без макросів (за 2 критеріями)
- Як скопіювати без урахування прихованих рядків в Excel (4 простих способи)
- Excel VBA для копіювання рядків на інший аркуш на основі критеріїв
- Як за допомогою VBA вставити в Excel тільки значення без форматування
2. VBA для копіювання діапазону даних з іншої книги без відкриття в Excel
За допомогою сервісу VBA ми можемо скопіювати дані з діапазону даних. Для цього необхідно виконати наведені нижче кроки.
КРОКИ:
- Для початку перейдіть на сторінку Розробник вкладка на стрічці.
- По-друге, відкрити Редактор Visual Basic натиснувши на Visual Basic або натиснувши Alt + F11 .
- Або просто натисніть правою кнопкою миші на аркуші і виберіть Переглянути код для відкриття Редактор Visual Basic .
- Після цього запишіть VBA код Там.
Код VBA:
Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'куди помістити скопійовані дані. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub
- Тут запускаємо код за допомогою Біжи Sub або натисніть комбінацію клавіш F5 для запуску коду.
ПРИМІТКА: Вам не потрібно модифікувати код, все, що вам потрібно зробити, це просто змінити діапазон відповідно до ваших вихідних даних.
- І, нарешті, тепер дані копіюються з іншої книги в активну книгу.
Читати далі: Макрос для копіювання та вставки з одного аркуша на інший (15 способів)
3. Excel VBA для копіювання даних з іншої книги без відкриття за допомогою командної кнопки
Ми можемо скопіювати дані з іншої книги за допомогою командної кнопки на панелі VBA Для цього необхідно виконати наступні кроки.
КРОКИ:
- По-перше, поставити Командна кнопка перейдіть на сторінку Розробник рахунок.
- По-друге, натисніть на кнопку Вставка випадаюче меню.
- По-третє, натисніть на кнопку Командна кнопка .
- Ми поставили Продукт на мобільний A1 оскільки це ім'я нашого листа вихідного файлу. І ми встановлюємо Командна кнопка Ми створили таблицю, тепер нам просто потрібні дані, які знаходяться в іншій книзі.
- З цієї ж причини, перейдіть до розділу Розробник вкладка на стрічці.
- Далі натисніть на кнопку Visual Basic або натисніть Alt + F11 для запуску Редактор Visual Basic .
- Ви також можете відкрити розділ Редактор Visual Basic натиснувши правою кнопкою миші на аркуші і вибравши Переглянути код .
- Тепер напишіть VBA Відбій.
Код VBA:
Private Sub CommandButton1_Click() Dim sourceworkbook As Workbook Dim currentworkbook As Workbook Set currentworkbook = ThisWorkbook Set sourceworkbook = Workbooks.Open("D:\Products_Details.xlsx") sourceworkbook.Worksheets("Товар").Range("B5:E10").Copy currentworkbook.Activate currentworkbook.Worksheets("Лист3").Activate currentworkbook.Worksheets("Лист3").Cells(4, 1).Select ActiveSheet.Pastesourceworkbook.Close Set sourceworkbook = Nothing Set currentworkbook = Nothing ThisWorkbook.Activate Worksheets("Sheet3").Activate Worksheets("Sheet3").Range("A2").Select End Sub
- Після цього збережіть код, натиснувши Ctrl + S .
ПРИМІТКА: Скопіювати код можна, потрібно лише змінити шлях до файлу та діапазон даних.
- І, нарешті, якщо ви натиснете на кнопку CommandButton1 це дозволить скопіювати дані з іншої книги, не відкриваючи її.
Читати далі: Макрос для копіювання даних з однієї книги в іншу на основі критеріїв
Висновок
Наведені вище критерії є орієнтирами для копіювання даних з іншої книги без її відкриття за допомогою Excel VBA Сподіваємося, це допоможе вам! Якщо у вас виникли запитання, пропозиції або відгуки, будь ласка, повідомте нам про це в розділі коментарів. Або ви можете ознайомитися з іншими нашими статтями в розділі ExcelWIKI.com блог!