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

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

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

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

Спасибо

Rob.

1 Ответ

11 голосов
/ 26 ноября 2009

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

(непроверенный код)

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)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...