![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 30.10.2009
Сообщений: 6
|
![]()
Привет всем.
Может кто-то встречал макрос по обработке результатов тестирования в Ecxel файлах. В принципе процедура распространенная и наверное должна быть почти стандартная. Файлы тестированных складываются в одну дирректорию - запускается макрос, который открывает их по очереди. Из заголовка открытого листа B5:F5 берутся данные испытуемого, помещаются в новый файл, здесь же на пару строк ниже помещаются результаты теста B45:F48. Макрос отступает на две строки и повторяет цикл. Вроде все просто, а знаний по циклам не хватает. Почему SAS888? Он решал в июле прошлого года аналогичную задачу. Заранее благодарен. |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Где макрос должен искать папку с тестами?
Прописать путь к папке в макросе, или выдавать диалоговое окно выбора папки с тестами? Не помешает пример итогового файла (что должно получиться в результате) |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
1. Для частных сообщений используйте ЛС.
2. EducatedFool абсолютно прав. Без ответа на этот вопрос невозможно написать макрос так, как Вам нужно. 3. Предположим, что файл с макросом находится в той же папке, где и файлы для сбора данных. Тогда откройте этот файл и запустите в нем следующий макрос: Код:
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 03.11.2009 в 07:29. |
![]() |
![]() |
![]() |
#4 |
Регистрация: 30.10.2009
Сообщений: 6
|
![]()
SAS888, спасибо ОГРОМНОЕ! Вот что значит Профессионал.
Действительно, исходные файлы (как и файл с макросом) лучше складывать в соответствующие папки (например по названию департамента). Тогда можно будет сохранять результаты в виде обработанного макросом файла не не заморачиваться с путями. Что касается примера итогового файла; я, почему-то предполагал, что для окончательной обработки данных мне будет достаточно того, что я получил. Но при ближайшем рассмотрении выяснилось, что вы правы и гораздо эргономичнее провести обработку одним макросом. Может еще раз поможете? Это было бы просто здорово. Спасибо Последний раз редактировалось prostoklassnik; 04.11.2009 в 07:59. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Посмотрите вложение. Откройте файл "itog_simple_2.xls" и запустите макрос "Main". Не уверен, что я из исходных файлов беру те данные, которые Вам требуются. Если не так, то скажите конкретно, из каких ячеек исходных файлов брать данные и в какие столбцы их помещать. И еще. Формул в ячейках нет. Все считает макрос.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 30.10.2009
Сообщений: 6
|
![]()
Здравствуйте. Все просто замечательно. Спасибо.
Формулы в ячейках и не нужны - это упростит дальнейшую обработку. Мне они были нужны, чтобы упростить заполнение ячеек примера (ну не на калькуляторе же считать). В ячейки пошли именно те данные, которые требуются. Но вот алгоритм написания макроса обнажил небольшую проблемку, которую в принципе я должен был предвидеть. Дело в том, что исходные данные бывают двух типов (четырехшкальные и пятишкальные). Если созданным макросом считать пятишкальный файл - все прекрасно, а вот при обработке четырехшкального (если в макросе подменить [E56:E60].Copy: .Cells(i, "D") === [F56:F60].Copy: на [E45:E48].Copy: .Cells(i, "D") === [F45:F48].Copy:, то в результате работы макроса в пятой шкале вылазит деление на ноль. Наверное эту проблему можно решить, сделав подредактированный макрос для четырехшкального теста. Или есть способ сделать это элегантнее унивесальным макросом для обеих шкал (например поиском теста Шкала№1,2,3,4,5 в исходнике)? На всякий случай отправляю исходник и симпл для четырехшкального варианта. Еще раз спасибо. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Вопрос: Если мы обрабатываем и 4-х и 5-и шкальные файлы, то как подсчитывать среднее значение? Для 5-и все ясно, а для 4-х, последнее значение будет =0. И, соответственно, если для 4-х шкальных результатов вычислять среднее значение из 5-и (с нулем), то результат будет значительно меньше.
Уточните, что в каком случае делать и как вычислять средний результат по итоговой строке?
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 30.10.2009
Сообщений: 6
|
![]()
Если в исходном файле пять шкал мы делим на 5, соответственно при четырехшкальном иходнике делить нужно на 4. Получается макрос должен знать какой исходник он считает (может даже проверкой 0 или не 0 в итоге пятой шкалы) и делить общее среднее значение на нужную цифру.
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Посмотрите пример во вложении.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#10 |
Регистрация: 30.10.2009
Сообщений: 6
|
![]()
В процессе тестирования вылез неожиданный баг. Если в папке нахдяться только четырехшкальные исходники (и только тогда), макрос пишет Runtime Error 6 и выкидывает debugger.
Сорри. Никак не могу у администратора выбить право писать ЛС. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
программа для тестирования(Delphi) | zipo | Помощь студентам | 3 | 26.05.2012 17:58 |
Сводный файл для результатов - помогите плз | porco | Microsoft Office Excel | 0 | 19.05.2009 15:31 |
прога для тестирования | veyder21 | Общие вопросы .NET | 5 | 28.12.2008 15:21 |
Макрос в Excel для обработки группы файлов | ad_sum | Microsoft Office Excel | 1 | 29.12.2007 16:56 |
Help! Немогу написать код для посчета и вывода результатов. | Руслан | БД в Delphi | 2 | 22.12.2006 13:29 |