วิธีสร้างใบสอบปรนัยใน 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

มันทำงานอย่างไร?

เมื่อผู้ใช้เปิดสมุดงานแมโครจะทำงานเพื่อซ่อนแผ่นงาน“ ฐานข้อมูล” และ“ สรุป” หากแผ่นงาน“ ฐานข้อมูล” ไม่ได้ซ่อนจากผู้ใช้คำตอบทั้งหมดจะถูกเปิดเผย นอกจากนี้ยังไม่จำเป็นที่นักเรียนจะต้องดูแผ่นงาน "สรุป" ก่อนที่จะส่งสมุดงานให้กับผู้ใช้ควรเรียกใช้มาโคร“ เตรียมการ _ ทดสอบ” ซึ่งจะเติมข้อมูลในแผ่นงาน“ ทดสอบ” ผู้ใช้สามารถเลือกตัวเลือกใดก็ได้และมาโครจะเน้นคำตอบที่เลือกเป็นสีเหลือง มาโคร“ Show_Result” จะเปรียบเทียบตัวเลือกที่เลือกบนแผ่นงาน“ ทดสอบ” กับคำตอบในแผ่นงาน“ ฐานข้อมูล” และระบุจำนวนคำตอบที่ถูกต้อง

ไม่มีชีตซ่อนอยู่ใช่ไหม

สคริปต์ VBA ไม่สามารถแจ้งเตือนคุณสมบัติของแผ่นงาน Excel ที่เสียหาย ในกรณีเช่นนี้ กู้คืน Excel แผ่นงานและเรียกใช้แมโครอีกครั้ง

บทนำผู้เขียน:

Nick Vipond เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ Word เสียหาย และผลิตภัณฑ์ซอฟต์แวร์กู้คืน Outlook ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.

แบ่งปันเลย:

ความเห็นถูกปิด