如何在 Excel 中制作多项选择试卷

立即分享:

作为培训师,您会为您的学生举办多次研讨会。 现在是您与学生共享 Excel 工作簿的时候了,这将帮助您确定他们的理解程度。 按照本文准备多项选择题数字试卷。

立即下载

如果您想尽快开始使用该软件,那么您可以:

立即下载软件

否则,如果你想DIY,你可以阅读下面的内容。

让我们准备 GUI

内容准备表格测试

准备工作表摘要

准备工作表数据库

让我们准备数据库

在“数据库”表上添加问题、选项和正确答案

让我们让它发挥作用

将此脚本复制到启用宏的工作簿中的新模块。

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”将比较工作表“Test”上的选定选项与工作表“Database”上的答案,并确定正确答案的数量。

表格没有隐藏吗?

VBA 脚本无法警告损坏的 Excel 工作表的属性。 在这种情况下, 恢复 Excel 工作表并重新运行宏。

作者简介:

Nick Vipond 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 损坏的字 和 outlook 恢复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。