Страница 2 из 2
Re: Excel VBA, как подсчитать в диапазоне.
Добавлено: 16 май 2007, 21:25
Дмит
vadim245
Перенесите макрос в любую другую книгу (новую или лучше Personal.xls).
Он не требует MSCOMCT2.OCX.
При размещениии макроса в Personal.xls, он будет доступен в любой активной книге (с любой неделей в пределах текущего года)
Re: Excel VBA, как подсчитать в диапазоне.
Добавлено: 18 май 2007, 11:22
vadim245
спасибо огромное. помог и код и рекомендации.
Re: Excel VBA, как подсчитать в диапазоне.
Добавлено: 21 май 2009, 12:42
vadim245
Вернулся по прошествии года к этому макросу. 3 часа тупил - так и не понял, почему он перестал работать для 2009 года/2007 офиса?
Re: Excel VBA, как подсчитать в диапазоне.
Добавлено: 21 май 2009, 19:18
Aent
что пишет ?
Re: Excel VBA, как подсчитать в диапазоне.
Добавлено: 21 май 2009, 19:50
Teslenko_EA
Здравствуйте vadim245.
Ваша задача с набором записей табличного вида и потому ее можно решать с применением ADO.
Евгений.
Re: Excel VBA, как подсчитать в диапазоне.
Добавлено: 22 май 2009, 06:40
vadim245
Teslenko_EA, спасибо за интересное предложение!
Развлечение на все выходные, интересно ведь наконец-таки мотивированно глянуть на ADO :-)
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Евгений, тут что-то не так в приведенном Вами решении. Что именно понять не могу.
Test1 [ATTACH]896[/ATTACH]
В нем неделя 919 (19 неделя 2009 года) все значения сделаем тупо равными 1. Выделенное желтым по идее ложно быть подвергнуто анализу (с пн по вс 19 недели). Запускаем макрос и видим, что среди выбранных 4-х максимумов оказывается откуда-то 0 (ноль).
Test2 [ATTACH]897[/ATTACH]
В нем неделя 919 (19 неделя 2009 года) все значения сделаем тупо равными 1. Выделенное желтым по идее ложно быть подвергнуто анализу (с пн по вс 19 недели). Теперь попробуйте проделать так:
рисуем в G17 двойку - в выборку попала
рисуем в G18 тройку - в выборку НЕ попала
рисуем в G19 четверку - в выборку НЕ попала
рисуем в G20 пятерку - в выборку попала и пятерка и сразу же и 2,3,4 введенные ранее
ну и все последующие попадают в выборку по мере добавления
причем СРЕДНЕЕ из четырех так и подсчитывается неверно.
Примечательно, что граница анализа вполне корректно заканчивается на 10/05/2009 как и положено
Re: Excel VBA, как подсчитать в диапазоне.
Добавлено: 22 май 2009, 22:18
Teslenko_EA
Здравствуйте
vadim245.
"Развлечение на все выходные..." началось с пятницы

действительно логика заполнения матрицы не совсем верна

, прошу прощения, моя ошибка, исправьте код заполнения матрицы подобным образом:
Код: Выделить всё
If rs(6) > q(0) Then
q(3) = q(2): q(2) = q(1): q(1) = q(0): q(0) = rs(6)
ElseIf rs(6) > q(1) Then
q(3) = q(2): q(2) = q(1): q(1) = rs(6)
ElseIf rs(6) > q(2) Then
q(3) = q(2): q(2) = rs(6)
ElseIf rs(6) > q(3) Then
q(3) = rs(6)
End If
Евгений.
Re: Excel VBA, как подсчитать в диапазоне.
Добавлено: 25 май 2009, 09:11
vadim245
Спасибо, все работает.