Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопрос по работе с объектами типа Range (VBA Excel) > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
Red_Garry
Что здесь неправильно:
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
У меня работает вот так:

Код
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
Спасибо! Ваш вариант работает! Работает и с форматом xls
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.