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

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

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

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

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

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

Ответы [ 2 ]

26 голосов
/ 24 октября 2011

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

' 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
0 голосов
/ 26 апреля 2014

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

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

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

...