Als trainer zou u verschillende seminars voor uw studenten hebben gegeven. Nu is het tijd dat u een Excel-werkmap met uw studenten deelt, zodat u kunt zien hoeveel ze hebben begrepen. Bereid een digitaal meerkeuzetentamenblad voor door dit artikel te volgen.
Nu downloaden
Als u de software zo snel mogelijk wilt gaan gebruiken, kunt u het volgende doen:
Anders, als je zelf wilt klussen, kun je de onderstaande inhoud lezen.
Laten we de GUI voorbereiden
Beschrijving
Laten we de database voorbereiden
Voeg vragen, opties en het juiste antwoord toe op het blad "Database"
Laten we het functioneel maken
Kopieer dit script naar een nieuwe module in uw werkmap met ingeschakelde macro's.
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
Kopieer dit script naar het codevenster van het blad "Test"
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
Kopieer dit script naar het codevenster van "ThisWorkook"
Private Sub Workbook_Open()
Call Module1.Prepare_Test
Sheets("Database").Visible = 2
Sheets("Summary").Visible = 2
End Sub
Hoe werkt het?
Wanneer een gebruiker de werkmap opent, wordt de macro uitgevoerd om de bladen "Database" en "Samenvatting" te verbergen. Als het blad "Database" niet verborgen is voor de gebruiker, worden alle antwoorden weergegeven. Het is ook niet nodig voor een student om het blad "Samenvatting" te zien. Voordat de werkmap naar gebruikers wordt verzonden, moet de macro "Prepare_Test" worden uitgevoerd die het blad "Test" zal vullen. Gebruikers kunnen elke optie selecteren en de macro zal het geselecteerde antwoord geel markeren. De macro "Show_Result" zal de geselecteerde opties op het blad "Test" vergelijken met de antwoorden op het blad "Database" en identificeert het aantal juiste antwoorden.
Zijn Sheets niet verborgen?
VBA-script kan eigenschappen van een beschadigd Excel-werkblad niet waarschuwen. In zo'n geval, Excel herstellen werkblad en voer de macro opnieuw uit.
Auteur Introductie:
Nick Vipond is een data recovery-expert in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder beschadigd Word en Outlook-herstelsoftwareproducten. Voor meer informatie bezoek www.datanumen.com

