Как сделать экзаменационный лист с несколькими вариантами ответов в Excel

Поделись сейчас:

Как тренер, вы бы провели несколько семинаров для своих студентов. Теперь пришло время поделиться рабочей тетрадью Excel со своими учениками, которая поможет вам определить, насколько они поняли. Подготовьте цифровой экзаменационный лист с несколькими вариантами ответов, следуя этой статье.

Скачать сейчас

Если вы хотите начать использовать программное обеспечение как можно скорее, то можете:

Загрузите программное обеспечение сейчас

В противном случае, если вы хотите сделать своими руками, вы можете прочитать содержимое ниже.

Давайте подготовим графический интерфейс

КонтентПодготовьте лист теста

Подготовьте сводку листа

Подготовьте базу данных листов

Подготовим базу

Добавьте вопросы, варианты и правильный ответ на лист «База данных»

Давайте сделаем его функциональным

Скопируйте этот сценарий в новый модуль в вашей книге с поддержкой макросов.

Sub Prepare_Test()
    Dim lr As Long
    Dim r As Long
    Dim rinq As Long
    rinq = 0
    lr = Sheets("Database").Range("A" & Rows.Count).End(xlUp).Row
    For r = 3 To lr
        rinq = rinq + 6
        Sheets("Test").Range("C" & rinq).Value = Sheets("Database").Range("A" & r).Value
        Sheets("Test").Range("C" & rinq + 1).Value = Sheets("Database").Range("B" & r).Value
        Sheets("Test").Range("C" & rinq + 2).Value = Sheets("Database").Range("C" & r).Value
        Sheets("Test").Range("C" & rinq + 3).Value = Sheets("Database").Range("D" & r).Value
        Sheets("Test").Range("C" & rinq + 4).Value = Sheets("Database").Range("E" & r).Value
    Next r
End Sub

Sub Show_Result()
    Dim lr As Long
    Dim r As Long
    Dim rinq As Long
    rinq = 0
    Sheets("Database").Visible = -1
    Sheets("Summary").Visible = -1
    lr = Sheets("Database").Range("A" & Rows.Count).End(xlUp).Row
    Dim v_ccount As Long
    v_ccount = 0
    For r = 3 To lr
        Dim v_answer As String
        v_answer = "Option " & Sheets("Database").Range("F" & r).Value
        rinq = rinq + 6
        If Sheets("Test").Range("C" & rinq + 1).Interior.Color = vbYellow And Sheets("Test").Range("B" & rinq + 1).Value = v_answer Then
            v_ccount = v_ccount + 1
        End If
        If Sheets("Test").Range("C" & rinq + 2).Interior.Color = vbYellow And Sheets("Test").Range("B" & rinq + 2).Value = v_answer Then
            v_ccount = v_ccount + 1
        End If
        If Sheets("Test").Range("C" & rinq + 3).Interior.Color = vbYellow And Sheets("Test").Range("B" & rinq + 3).Value = v_answer Then
            v_ccount = v_ccount + 1
        End If
        If Sheets("Test").Range("C" & rinq + 4).Interior.Color = vbYellow And Sheets("Test").Range("B" & rinq + 4).Value = v_answer Then
            v_ccount = v_ccount + 1
        End If
    Next r
    Sheets("Summary").Range("C7").Value = Sheets("Test").Range("F3").Value
    Sheets("Summary").Range("C11").Value = lr - 2
    Sheets("Summary").Range("F11").Value = v_ccount
    Sheets("Summary").Range("I11").Value = (lr - 2) - v_ccount
End Sub

Скопируйте этот скрипт в окно кода листа «Тест».

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim ar As Long
    ar = Target.Row
    Range("C" & ar & ":F" & ar).Interior.Color = vbYellow
End Sub

Скопируйте этот скрипт в окно кода «ThisWorkook».

Private Sub Workbook_Open()
    Call Module1.Prepare_Test
    Sheets("Database").Visible = 2
    Sheets("Summary").Visible = 2
End Sub

Как это работает?

Когда пользователь открывает книгу, запускается макрос, чтобы скрыть листы «База данных» и «Сводка». Если лист «База данных» не скрыт от пользователя, все ответы видны. Студенту также не обязательно видеть лист «Сводка». Перед отправкой рабочей книги пользователям следует запустить макрос «Prepare_Test», который заполнит лист «Test». Пользователи могут выбрать любой вариант, и макрос выделит выбранный ответ желтым цветом. Макрос «Show_Result» сравнивает выбранные варианты на листе «Тест» с ответами на листе «База данных» и определяет количество правильных ответов.

Таблицы не скрыты?

Сценарий VBA не может оповещать о свойствах поврежденного листа Excel. В таком случае, восстановить Excel рабочий лист и перезапустите макрос.

Об авторе:

Ник Випонд — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая поврежденное слово и программные продукты для восстановления Outlook. Для получения дополнительной информации посетите www.datanumen.com

Поделись сейчас:

Комментарии закрыты.