| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > Перенос строк из соответсвующих листов |
| Автор: Mrak 6.4.2006, 05:32 |
| Постановка задачи. Есть документ в Excel, в котором 6 листов. Предположим, что названия стандартные: Лист1…..Лист 6. У каждого листа одинаковая шапка № п/п Задача Дата Выполнено (A) (B) (С) (D) В поле выполнено будет записываться или «да» или «нет» У нас есть второй документ с таким же порядком листов – этот документ называется архив. Суть задачи. При открытии файла нужно, чтобы проверялось поле выполнено в каждой строчке таблицы каждого листа. Если в нем уже написано «да», то строка таблицы должна вырезаться и вставляться в первую свободную строку в файл архив на соответствующий лист, т.е. на лист, имеющий то же название, что и исходный, но находящийся в другой книге (Архив). Если поле «Выполнено» написано «нет», то нужно проверить, меньше ли дата, в поле «Дата» сегодняшней даты. Если это верно, то выделить красным строку. Реализация. В принципе примерное представление о том как делать есть. Но работа со строками не совсем ясна. Как лучше это организовать? Помогите пожалуйста, разобраться в этом. Заранее спасибо. |
| Автор: shovkoplyas 6.4.2006, 19:19 | ||||||||||
Становимся на ячейку флажка Меню-Формат-Условное форматирование Выбираем Формула и пишем =C1<СЕГОДНЯ() 'под C1 подразумеваем ячейку даной строки с датой Теперь нажимаете кнопку Формат и устанавливаем красный цвет шрифта или фона и так для всех ячеек, если недостаточно подсвечивать ячейку флажка
Примерно так. В чистовом виде можно зациклить для каждого листа и упростить код. |
| Автор: Staruha 6.4.2006, 19:25 |
| Примерно так For list=1 to 6 For rng=2 to 500 If Лист(x).cells(rng, 4)="да" Then |
| Автор: shovkoplyas 7.4.2006, 09:07 | ||
Что такое:
в этом примере. |
| Автор: Staruha 7.4.2006, 19:53 | ||
Извини описалась
|
| Автор: Mrak 8.4.2006, 20:22 |
| Надо попробовать, отпишусь о результатах. |
| Автор: Mrak 15.5.2006, 19:56 |
| У меня был небольшой перерыв. Поэтому задачка замерла. Но теперь я к ней вернулся. shovkoplyas, код хороший почти во всем, кроме строчки 12. Rows(1:1).Select. При следующем открытии книги будет возникать ошибка, по причине того, что эта строчка уже заполнена. Что с этим делать? То есть единственное, чего я не понял - как определить последнюю непустую ячейку, запомнить ее строку, преобразовать ее в тип, пригодный для Rows(). Заранее спасибо за помощь и разъяснения. |
| Автор: Artiom 16.5.2006, 09:39 | ||
Если у твоего файла регулярная структура (состоит только из таких строк) то можно использовать
max_row - номер последней используемой строки |
| Автор: shovkoplyas 16.5.2006, 15:09 |
| Загляни сам. Не хочу повторяться. http://forum.sources.ru/index.php?showtopic=93671 |
| Автор: Mrak 19.5.2006, 14:02 |
| Все спасибо! Задача решена |