Вопрос по работе с объектами типа Range (VBA Excel) |
Здравствуйте, гость ( Вход | Регистрация )
Вопрос по работе с объектами типа Range (VBA Excel) |
Red_Garry |
20.3.2010, 7:38
Сообщение
#1
|
Новичок Группа: Продвинутые Сообщений: 7 Регистрация: 12.3.2010 Город: Харьков Украина |
Что здесь неправильно:
Dim d As Range Dim c As Range d = Workbooks("d:\Книга1.xls").Worksheets("Лист1").Range("A1:B10") c = Workbooks("d:\Книга2.xls").Worksheets("Лист1").Range("A1:B10") c = d.Value При выполнении этого куска кода выдаётся ошибка: Run-time error '9': Subscript out of range т.е. есть необходимость копирования данных из диапазона Книга1 в аналогичный диапазон Книга2. Обе книги открыты. Подскажите, пожалуйста. |
Vahappaday |
20.3.2010, 11:40
Сообщение
#2
|
Аспирант Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент |
У меня работает вот так:
Код Dim d As Range Dim c As Range Set d = Workbooks("Книга1.xlsx").Worksheets("Лист1").Range("A1:B10") Set c = Workbooks("Книга2.xlsx").Worksheets("Лист1").Range("A1:B10") c.Value = d.Value xlsx - не стал пробовать с книгами старого формата, надеюсь, будет работать Set - корректное присвоение ссылки на объект Почитать можно тут http://msdn.microsoft.com/en-us/library/aa...28VS.60%29.aspx Абсолютные пути не поддерживаются, не даром Excel начинает ругаться, когда открываются две книги с разными именами из разных мест, так что используем какой-то другой метод, имя книги или, как я сделал тут, имя файла с книгой без пути. Именно из-за этого выскакивала Run-Time Error '9'. ну... и c.Value тоже надо было не забыть |
Red_Garry |
20.3.2010, 12:37
Сообщение
#3
|
Новичок Группа: Продвинутые Сообщений: 7 Регистрация: 12.3.2010 Город: Харьков Украина |
Спасибо! Ваш вариант работает! Работает и с форматом xls
|
Текстовая версия | Сейчас: 29.3.2024, 1:42 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru