Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2009, 09:31   #1
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 619
По умолчанию Копирование данных на первую пустую ячейку

Не могу сделать, так как очень мало знаю программирование. Прошу помочь. Условие в файле, набрано красным цветом.
Необходимо скопировать кусок данных и поместить их на первую пустую ячейку другого листа
Вложения
Тип файла: rar proba-2009.rar (24.1 Кб, 78 просмотров)
kzld вне форума Ответить с цитированием
Старый 21.06.2009, 11:04   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Может быть, одной кнопки хватит?



Диапазоны данных должны быть разделены хотя бы одной пустой строкой.
Внутри диапазона в столбце A не должно быть пустых ячеек.
Вложения
Тип файла: rar proba-2009.rar (33.9 Кб, 99 просмотров)
EducatedFool вне форума Ответить с цитированием
Старый 21.06.2009, 11:37   #3
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 619
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Может быть, одной кнопки хватит?

Диапазоны данных должны быть разделены хотя бы одной пустой строкой.
Внутри диапазона в столбце A не должно быть пустых ячеек.
А можно ли в левом столбце, переименовать A3:H18 во что-то более осмысленное, например ОПЕРАЦИЯ-А ?
kzld вне форума Ответить с цитированием
Старый 21.06.2009, 11:41   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Можно. Только откуда брать эти "осмысленные" названия диапазонов?
Счтывать из каких-то ячеек, или формировать программно:
ОПЕРАЦИЯ-А
ОПЕРАЦИЯ-Б
...
ОПЕРАЦИЯ-Ы
EducatedFool вне форума Ответить с цитированием
Старый 21.06.2009, 11:46   #5
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 619
По умолчанию

[QUOTE=EducatedFool;293984]Может быть, одной кнопки хватит?

То, что надо. Но как Вы это сделали?
Посмотрел исходный текст, нигде не нашёл условия A3:H18
Возможно я пожелаю расширить диапазоны и увеличить количество листов. Как мне это сделать, не загромождая форум.
kzld вне форума Ответить с цитированием
Старый 21.06.2009, 11:54   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Посмотрел исходный текст, нигде не нашёл условия A3:H18
Неудивительно, ибо такого "условия" там нет.
Принцип работы примерно такой:
  1. Ставим курсор в первую ячейку, и нажимаем Ctrl + СтрелкаВниз
    Код:
    Set cell = [a1].End(xlDown)
  2. Так мы попадаем на начало первого диапазона
  3. Считываем адрес диапазона - равносильно нажатию Ctrl + A
    Код:
    cell.CurrentRegion
  4. Увеличиваем количество столбцов в диапазоне (поскольку присутствует пустой столбец)
    Код:
    Intersect(cell.CurrentRegion.EntireRow, Range("A:N"))
  5. Ищем начало следующего диапазона (равносильно двукратному нажатию Ctrl + СтрелкаВниз)
    Код:
    Set cell = cell.End(xlDown).End(xlDown)
  6. И так далее, пока мы находимся в пределах первой тысячи строк
    Код:
    While cell.Row < 1000
Цитата:
Возможно я пожелаю расширить диапазоны и увеличить количество листов
Ну так расширяйте и увеличивайте. Всё должно работать.
Если что-то будет работать неправильно - обращайтесь.
EducatedFool вне форума Ответить с цитированием
Старый 21.06.2009, 12:18   #7
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 619
По умолчанию

Хотел было задать вопрос с цитированием оригинала, запутался в тэгах.
>Ставим курсор в первую ячейку, и нажимаем Ctrl + СтрелкаВниз
Да, курсор встал в начало первого диапазона.
>Set cell = [a1].End(xlDown)
А это где должно нарисоваться? Что, должен быть включен макрорекордер?
>Считываем адрес диапазона - равносильно нажатию Ctrl + A
Выделился первый диапазон (это понятно)
>cell.CurrentRegion
А здесь непонятно, где эта строчка должна появиться?
>Увеличиваем количество столбцов в диапазоне (поскольку присутствует пустой столбец)
Не критично, столбец можно забить нулями или удалить
Пока что всё. Вопросы появятся позже.
kzld вне форума Ответить с цитированием
Старый 21.06.2009, 12:29   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
А это где должно нарисоваться? Что, должен быть включен макрорекордер?
Ничего нарисоваться не должно.
Это я просто пытался объяснить алгоритм работы макроса на примере аналогичных действий "вручную".

Цитата:
Вопросы появятся позже.
Если есть Skype - звоните, объясню, как это всё работает.
EducatedFool вне форума Ответить с цитированием
Старый 15.07.2009, 14:06   #9
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 619
По умолчанию

[QUOTE=EducatedFool;294008]Ничего нарисоваться не должно.
Это я просто пытался объяснить алгоритм работы макроса на примере аналогичных действий "вручную".
Подзабыл, потому что не каждый день работаю.
Как увеличить границы диапазона от столбца A до столбца Q
kzld вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие ввода данных в ячейку tae1980 Microsoft Office Excel 15 23.05.2019 15:01
Ввод данных при нажати на кнопку в активную ячейку. sergiksergik Microsoft Office Excel 2 21.03.2009 21:30
как найти первую заполненную ячейку в диапазоне Bezdar Microsoft Office Excel 3 19.02.2009 11:59
Копирование данных maks_ Microsoft Office Excel 4 09.01.2009 11:01
Найти первую цифру в данных ячейки.. kra183 Microsoft Office Excel 11 09.05.2008 01:35