如何在Excel中製作多項選擇題考試表

立即分享:

作為培訓師,您會為您的學生舉辦幾次研討會。 現在是時候與學生共享Excel工作簿了,這將幫助您確定他們的理解程度。 請按照本文準備多選數字考試表。

立即下載

如果你想tart盡快使用該軟件,那麼您可以:

立即下載軟件

否則,如果要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”將比較“測試”表上的所選選項和“數據庫”表上的答案,並標識正確答案的數量。

表格沒有隱藏嗎?

VBA腳本無法警告損壞的Excel工作表的屬性。 在這種情況下, 恢復Excel 工作表並重新運行宏。

作者簡介:

Nick Vipond是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 損壞的詞 和Outlook恢復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM

立即分享:

評論被關閉。