| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > Выбор диапазона дат, вставка итога для выборки |
| Автор: dosh 31.5.2006, 12:44 |
| Прошу помочь. Задача: есть диапазон данных - первый столбец - дата, в остальных числовые данные. Необходимо в начале нового месяца делать выборку за прошедший месяц, переносить эти ячейки в другую книгу и вставлять строку с итогом по столбцам. В следующем месяце - тоже самое, но ниже итога предыдущего месяца. Даты идут с разрывами, то есть некоторые дни месяца пропущены. |
| Автор: Naghual 31.5.2006, 13:07 |
| Что именно не получается? Что уже сделано? |
| Автор: dosh 31.5.2006, 14:05 |
| Да, ничего не сделано. Не могу придумать алгоритм, по которому делать выборку, так как диапазон строк в каждом месяце разный. Сумму переменного диапазона строк надо считать. Ничего путного в голову не лезет! По сути, два главных вопроса - выборка за месяц и сумма столбцов внутри этой выборки. |
| Автор: sexton 31.5.2006, 14:19 |
| А месяцы хоть как-то разделены между собой? |
| Автор: dosh 31.5.2006, 14:46 |
| Нет, не разделены. Исходную таблицу заполняет макрос. День закончился - данные записываются в таблицу - проставляется дата в первой колонке. |
| Автор: Naghual 31.5.2006, 15:03 |
| Циклически пробегаеш по строкам. Следиш за датами. В пределах одного месяца делаеш накопление временных значений. По изменению месяца выполняеш действие над строками. |
| Автор: dosh 31.5.2006, 15:15 |
| А подробнее про накопление можно? |
| Автор: Naghual 31.5.2006, 15:38 | ||
|
| Автор: dosh 1.6.2006, 07:22 |
| Спасибо, за подсказку. Получилось вот это: Dim A Dim B Dim I Dim C Dim iVar1 As Integer Dim k k = 0 A = Month(Date) - 1 B = Range("A1").End(xlDown).Row For I = 1 To B C = Month(Range("$A$" & I).Value) If A = C Then iVar1 = iVar1 + Cells(I, 2).Value k = k + 1 End If Next I Range("B" & k + 1).Value = iVar1 Основа работает, а остальное уже ерунда. Огромное спасибо! |