Новости:

Название темы должно отражать суть задачи.
Темы типа "ПОМОГИТЕ!!!", "Срочно!" и т.п. будут удаляться без объяснения причин

Главное меню

Как сделать сверку шаблона и листа с ответами? (тестирование)

Автор GaS597, 14.07.2015, 12:33:01

« назад - далее »

GaS597

Стоит задача разработать программку для тестирования сотрудников на знание Excel. Всего 10 задач с разными условиями. Несколько задач на оформление стиля таблицы, несколько задач на логические функции и еще несколько на арифметические. При запуске файла запускается UserForm1 где пользователь вводит свои данные ФИО, которые записываются в листе Result. На последней задаче пользователь нажимает кнопку "Завершить тест", появляется UserForm2 где с помощью label'ов выводится ФИО пользователя и его оценка, которые берутся с листа Result. Собственно я все это набросал. Осталось самое сложное. Как определить правильно решил пользователь задачу или нет? Я создал дополнительные листы с ответами. Там те же самые таблицы с такими же стилями, но с уже проставленными функциями, цифрами и примененными стилями. Это ответы. Я их потом скрою от пользователя. Вопрос: как сравнить лист, с которым работает пользователь с листом шаблона? В листе Result нужно указать результат сравнения true или false.

vikttur

Название темы не соответствует содержанию. Переименуйте или предложите название, отражающее суть задачи.
ЦитироватьСобственно я все это набросал
Пример нужно показывать.

GaS597

Извините. Но я нигде не могу найти меню для редактирования темы поста...

Юрий М

Кнопка "Правка", но есть ограничение по времени...

Дмитрий Щербаков(The_Prist)

Здесь очень похожее - Сравнение двух диапазонов:
http://www.excel-vba.ru/forum/index.php?topic=3865.0

Диапазоны могут быть на разных листах.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

GaS597

Скачать файл можно отсюда https://dropmefiles.com/q0X7w

Alex_Gur

#6
Со своей стороны, могу порекомендовать Вам следующие методические материалы:
Создание интерактивных тестов в программе MS Excel
Веретенникова И.А. Как сделать тест в программе Excel?

Также мне встречалось очень подробное описание работы над макросом теста в Excel, но с ходу пока не могу его найти.
Если найду - также размещу ссылку в данной ветке.
Мы заинтересованы не только решить ваши задачи, но и помочь вам научиться решать их самостоятельно.
"Дай человеку рыбу, и он будет сыт весь день. Научи человека ловить рыбу, и он будет сыт всю жизнь" :)

GaS597

#7
Не могу зарегистрироваться, чтобы скачать файлы. Если не затруднит, выложите пожалуйста на другой файлообменник?

Alex_Gur

#8
Мы заинтересованы не только решить ваши задачи, но и помочь вам научиться решать их самостоятельно.
"Дай человеку рыбу, и он будет сыт весь день. Научи человека ловить рыбу, и он будет сыт всю жизнь" :)

GaS597

#9
Здесь идет сравнение по ячейке. Например, для арифметической задачки это подходит, но как сравнить стили? Например, задача по форматированию таблицы. Нужно, чтобы было сравнение отформатированной таблицы с шаблоном. Или например, задача "добавить строку между строками 2 и 3". Как сравнить такую таблицу или лист?...

Alex_Gur

На самом деле в интернете много и других методических материалов о тестах в Excel:
Попробуйте сами поискать в Яндексе, например, по такому критерию:
Цитироватьмакросы VBA excel ++тесты
Мы заинтересованы не только решить ваши задачи, но и помочь вам научиться решать их самостоятельно.
"Дай человеку рыбу, и он будет сыт весь день. Научи человека ловить рыбу, и он будет сыт всю жизнь" :)

Alex_Gur

#11
Нашел тот материал, который я хотел Вам порекомендовать
http://kitkitch.narod.ru/articles/vbatut/07_part_II.html
Очень подробное описание формирования теста на Excel, составленное в расчете на начинающего пользователя.
Мы заинтересованы не только решить ваши задачи, но и помочь вам научиться решать их самостоятельно.
"Дай человеку рыбу, и он будет сыт весь день. Научи человека ловить рыбу, и он будет сыт всю жизнь" :)

Alex_Gur

ЦитироватьЗдесь идет сравнение по ячейке. Например, для арифметической задачки это подходит, но как сравнить стили? Например, задача по форматированию таблицы. Нужно, чтобы было сравнение отформатированной таблицы с шаблоном. Или например, задача "добавить строку между строками 2 и 3". Как сравнить такую таблицу или лист?...

Одно из возможных решений этой проблемы - сопоставление параметров объекта (таблицы, ячейки и т.д.) с тем, который должен быть у эталона.
Во многих случаях, как мне кажется, нет необходимости формировать эталонный объект на другом листе и т.д.
Нужно лишь знать, каковы должны быть те или иные параметры эталонного объекта, и сравнивать получившиеся параметры с эталонными - на уровне макроса.
При таком подходе для каждого конкретного задания необходимо проверять свои специфические параметры.
В принципе, для такого решения Вы должны хорошо знать программирование на VBA и объектную модель Excel. В некоторых случаях Вам может помочь макрорекордер.

Если Вы желаете, мы можем разобрать один или два конкретных примера.
Мы заинтересованы не только решить ваши задачи, но и помочь вам научиться решать их самостоятельно.
"Дай человеку рыбу, и он будет сыт весь день. Научи человека ловить рыбу, и он будет сыт всю жизнь" :)

Alex_Gur

Для начала желательно разобрать задачу попроще.
Предложите, пожалуйста, такую задачу из Вашего теста.
Мы заинтересованы не только решить ваши задачи, но и помочь вам научиться решать их самостоятельно.
"Дай человеку рыбу, и он будет сыт весь день. Научи человека ловить рыбу, и он будет сыт всю жизнь" :)

Alex_Gur

Для примера можно разобрать вариант задания:
Добавить строку между строками 2 и 3.

Исходный файл с макросом прилагается.

Исходные условия:
Имеется таблица A2:B5, заполненная, например, числами.
Значение правой нижней ячейки B5 равно 6.

Возможный способ решения:
Пользователь выделяет строку 3 и нажимает на кнопку Вставить
(или другое аналогичное решение).

Альтернативный неправильный способ решения:
Пользователь выделяет часть таблицы A3:B5 и переносит ее на ячейку ниже.

Проверка условий решения:
1) Ячейка A3 является пустой.
2) Значение правой нижней ячейки таблицы B6 равно 6.
3) Строка 3 является пустой.

Для отсечения альтернативного неправильного способа решения в ячейку XEK3 ставим точку.

Sub Test1()
    'В ячейке XEK3 стоит точка
    Dim rngI As Range
    Dim intA As Integer
    Range("A3").Select
    Set rngI = Range(Selection, Selection.End(xlToRight))
    intA = rngI.Count
    If Range("A3") <> "" Or Range("B6") <> 6 Or intA <> 16384 Then
        MsgBox "Вы допустили ошибку!"
        'Для пустой строки intA = 16384; для строки с точкой intA = 16365
    Else
        MsgBox "Правильный ответ!"
    End If
End Sub



Мы заинтересованы не только решить ваши задачи, но и помочь вам научиться решать их самостоятельно.
"Дай человеку рыбу, и он будет сыт весь день. Научи человека ловить рыбу, и он будет сыт всю жизнь" :)

Яндекс.Метрика Рейтинг@Mail.ru