Как записать Range("A1:C2") через Cells ?

Программирование на Visual Basic for Applications
qwertyhp
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 156
Зарегистрирован: 07.10.2009 (Ср) 15:02
Откуда: Москва

Как записать Range("A1:C2") через Cells ?

Сообщение qwertyhp » 11.06.2010 (Пт) 22:02

Повадился я тут читать и писать из/в закрытые книги Excel (спасибо, Денис 08 апр 2010 подсказал, как). Но возникла проблема. При копировании ячейки
Код: Выделить всё
S1.Cells(1, 1).Copy S1.Cells(5, 5)
всё чудестно: но как скопировать ДИАПАЗОН ячеек через Cells? Запись вида
Код: Выделить всё
S1.Range("A1:C2").Copy S1.Range("B5")
не катит - вылетает либо ошибка, либо предложение сохраниться.
...Гм. Пять минут назад Range глючил, а сейчас запустил - всё работает. Не понял. :roll: возможно, файл был не закрыт, тогда поэтому. :roll: Но вопрос остаётся: как через Cells записать диапазон ячеек?
Спасибо
Пятачок Forever! :)

qwertyhp
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 156
Зарегистрирован: 07.10.2009 (Ср) 15:02
Откуда: Москва

Re: Как записать Range("A1:C2") через Cells ?

Сообщение qwertyhp » 11.06.2010 (Пт) 22:36

И ещё, забыл: как скопировать ячейку (диапазон ячеек) из одной закрытой книги в другую?
Спасибо.
Пятачок Forever! :)

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Как записать Range("A1:C2") через Cells ?

Сообщение FireFenix » 11.06.2010 (Пт) 23:54

qwertyhp писал(а):И ещё, забыл: как скопировать ячейку (диапазон ячеек) из одной закрытой книги в другую?

Ну как бы открывается книга Workbook1 и Workbook2 вот мы и обращаемся

Workbook1.Sheets(1).Range("A1:C2").Copy Workbook1.Sheets(1).Range("A1")
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

qwertyhp
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 156
Зарегистрирован: 07.10.2009 (Ср) 15:02
Откуда: Москва

Re: Как записать Range("A1:C2") через Cells ?

Сообщение qwertyhp » 13.06.2010 (Вс) 18:56

FireFenix, спасибо.
Нашёл. Выбор диапазона ячеек на активном листе
Код: Выделить всё
ActiveSheet.Range(Cells(1, 1), Cells(2, 3)).Select
Ссылка по теме (очень много интересного) : http://support.microsoft.com/kb/291308/ru?spid=1741
Кстати. Способ, предложенный Денисом 08 апр 2010, лишён многих недостатков в сравнении со способами на основе ADODB и/или ExecuteExcel4Macro.
Пятачок Forever! :)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 59

    TopList