Подтвердить что ты не робот

Импорт данных электронной таблицы Excel в другую таблицу Excel, содержащую VBA

Нам нужно написать таблицу Excel с кодом VBA; код считывает и выполняет операции с данными на первом листе.

Пользователь будет получать электронные таблицы, содержащие данные, но не содержащие код VBA. Нам нужно иметь возможность импортировать данные из электронных таблиц, содержащих данные, в электронную таблицу, содержащую код VBA, автоматически. Таблицы, содержащие данные, имеют одинаковый формат столбцов и типы данных в качестве листа таблицы, содержащей данные.

В идеале вы откроете электронную таблицу, содержащую код VBA, представите пользовательский интерфейс, позволяющий пользователю перейти к электронной таблице, содержащей данные, нажмите "ОК" и данные будут импортированы.

Как бы вы это сделали? Это нужно сделать с помощью VBA в электронных таблицах Excel.

Большое спасибо.

4b9b3361

Ответ 1

Это должно помочь вам начать: Используя VBA в своей собственной книге Excel, попросите пользователя указать имя файла данных, затем просто скопируйте этот фиксированный диапазон в целевую книгу (это может быть либо одна и та же рабочая книга, как и ее макрос, или третью книгу). Вот пример быстрого vba, как это работает:

' Get customer workbook...
Dim customerBook As Workbook
Dim filter As String
Dim caption As String
Dim customerFilename As String
Dim customerWorkbook As Workbook
Dim targetWorkbook As Workbook

' make weak assumption that active workbook is the target
Set targetWorkbook = Application.ActiveWorkbook

' get the customer workbook
filter = "Text files (*.xlsx),*.xlsx"
caption = "Please Select an input file "
customerFilename = Application.GetOpenFilename(filter, , caption)

Set customerWorkbook = Application.Workbooks.Open(customerFilename)

' assume range is A1 - C10 in sheet1
' copy data from customer to target workbook
Dim targetSheet As Worksheet
Set targetSheet = targetWorkbook.Worksheets(1)
Dim sourceSheet As Worksheet
Set sourceSheet = customerWorkbook.Worksheets(1)

targetSheet.Range("A1", "C10").Value = sourceSheet.Range("A1", "C10").Value

' Close customer workbook
customerWorkbook.Close

Ответ 2

Данные можно вытащить в excel из другого Excel через метод рабочей книги или внешнюю ссылку или через средство импорта данных.

Если вы хотите прочитать или даже хотите обновить другую книгу Excel, эти методы могут быть использованы. Для этого мы не можем зависеть только от VBA.

Для получения дополнительной информации об этих методах нажмите здесь, чтобы перейти к статье