последняя ячейка СТРОКИ с данными

Программирование на Visual Basic for Applications
ruvster
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 18.08.2005 (Чт) 19:32

последняя ячейка СТРОКИ с данными

Сообщение ruvster » 23.08.2005 (Вт) 18:12

Всем привет
Для копирования строки из одной книги в другую я пишу:

Workbooks("1.xls").Worksheets(1).Range("b3:z3").Copy _
Workbooks("2.xls").Worksheets(1).Range("b4")

И здесь меня все устраивает. Разьве только если увеличатся данные в таблице, придется переписывать код. Как мне написать

Workbooks("1.xls").Worksheets(1).Range("b3:Д последней ячейки строки с данными").Copy _
Workbooks("2.xls").Worksheets(1).Range("b4")
?
И еще вопрос.
Это я копирую строку с первой страницы в другую книгу, затем я копирую ту же строку, но со второй страницы ниже скопированного ранее. т.е. пишу:

Workbooks("1.xls").Worksheets(1).Range("b3:z3").Copy _
Workbooks("2.xls").Worksheets(1).Range("b4")
Workbooks("1.xls").Worksheets(2).Range("b3:z3").Copy _
Workbooks("2.xls").Worksheets(1).Range("b5")
Workbooks("1.xls").Worksheets(3).Range("b3:z3").Copy _
Workbooks("2.xls").Worksheets(1).Range("b6")
и так 12 страниц.
Наверное это можно сделать по-проще?
Спасибо.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 23.08.2005 (Вт) 18:26

И здесь меня все устраивает. Разьве только если увеличатся данные в таблице, придется переписывать код. Как мне написать

Workbooks("1.xls").Worksheets(1).Range("b3:Д последней ячейки строки с данными").Copy _
Workbooks("2.xls").Worksheets(1).Range("b4")


Selection.End(xlDown).Select - переход в самое последнию заполненную ячейку

насчет второго вопроса - не понял
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

ruvster
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 18.08.2005 (Чт) 19:32

Сообщение ruvster » 23.08.2005 (Вт) 18:52

Видимо я не понятно задал вопросы.
1. Мне нужен диапазон ячеек, например ("a1:Пследняя ячейка с данными в строке a")
2. Ну, второе вроде все понятно.
Спасибо

Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Сообщение Димитрий » 23.08.2005 (Вт) 21:02

Что-то типа:
Dim i As Long, j As Long, Max As Long
Max = Workbooks("1.xls").Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To Max
For j = 1 To 12
Workbooks("1.xls").Worksheets(j).Range(Workbooks("1.xls").Worksheets(j).Cells(i, 2), Workbooks("1.xls").Worksheets(j).Cells(i, 26)).Copy _
Workbooks("2.xls").Worksheets(1).Cells(3 + j, 2)
Next
Next
:wink:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.08.2005 (Ср) 7:52

SpecialCell(xlLastCell)
Lasciate ogni speranza, voi ch'entrate.

batiq
Обычный пользователь
Обычный пользователь
 
Сообщения: 95
Зарегистрирован: 21.01.2005 (Пт) 13:47

Сообщение batiq » 24.08.2005 (Ср) 15:01

alibek писал(а):SpecialCell(xlLastCell)
Как используется?.


Вернуться в VBA

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

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

    TopList