Как ссылаться на другую (открытую или закрытую) книгу и возвращать значения обратно в VBA? - Excel 2007

в основном мне нужно собрать справедливые несколько цифр из другой книги (которая найдена и может быть открыта пользовательской формой, поэтому местоположение и имена являются переменными). Для этого мне нужно использовать VBA, так как мне также нужно заполнить диаграмму этими данными. Я бы предпочел не открывать другую книгу, чтобы сделать это, но если это намного проще, то это нормально.

пользовательская форма выполнена и работает нормально, и у меня есть код, который мне нужно заполнить диаграмму, однако я не могу получить VBA извлеките данные из другой книги и назначьте их переменным, которые мне нужны.

есть идеи о том, как я могу заставить VBA сделать это? Буду очень признателен.

спасибо,

Роб.

1 ответов


вам придется открыть файл так или иначе, если вы хотите получить доступ к данным в нем. Очевидно, что один из способов-открыть его в экземпляре приложения Excel, например: -

(непроверенного кода)

Dim wbk As Workbook
Set wbk = Workbooks.Open("C:\myworkbook.xls")

' now you can manipulate the data in the workbook anyway you want, e.g. '

Dim x As Variant
x = wbk.Worksheets("Sheet1").Range("A6").Value

Call wbk.Worksheets("Sheet2").Range("A1:G100").Copy
Call ThisWorbook.Worksheets("Target").Range("A1").PasteSpecial(xlPasteValues)
Application.CutCopyMode = False

' etc '

Call wbk.Close(False)

другой способ сделать это было бы использовать поставщик Excel ADODB, чтобы открыть соединение с файлом, а затем использовать SQL для выбора данных из листа, который вы хотите, но так как вы все равно работаете из Excel, я не считаю, что есть какие-либо причины делать это скорее чем просто открыть книгу. Обратите внимание, что для книг существуют необязательные параметры.Метод Open () для открытия книги только для чтения и т. д.