СообЧа > База Знаний > Программы > MS Excel

Вопрос

Программированием меня заставила заняться жизнь. И теперь есть необходимость быстро написать макрос, но у меня пока не хватает знаний это сделать. А теперь к сути проблемы: есть таблица, вида
х х х х
х х х х
х х х z
х х х


которая каждый день дополняется одним значением. Это значение добавляется в позицию z, на следующий день в следующую за z (ниже) и так каждый день в течении 30 — 31 дня. Необходимо написать макрос так, чтобы он находил последний столбец, где есть значения, и последнюю строку со значением, а затем копировал это значение в другой лист в известную позицию.

Ответ

Последнюю колонку можно определить следующим образом:
Set SourceRange= …
'Здесь подставить адрес любой непустой ячейки из
'массива данных, лучше всего левый верхний угол.
LastColumn=SourceRange.CurrentRegion.Columns.Count
Как я понимаю, массив — календарь за месяц и в столбце не более 7 значений. Поэтому найти непустую ячейку можно простым перебором.
Например:
LastRow=StartValue
'Наверняка заранее известен номер первой строки
'массива
While cells(LastRow+1,LastColumn) <> Empty
LastRow=LastRow+1
Wend
Ну и теперь скопировать:
sheets(SourceSheet).cells(LastRow,LastColumn).Copy
Sheets(DestSheet).cells(DestRow,DestColumn).Paste

Митрич



Copyright © 2000-2004 Сообщество Чайников
Контактная информация