Имя Вы так и не вынесли в глобальную переменную. Естественно, сравнивать не с чем... Зачем задержка 15 сек?
Ввел все заведомо неправильные ответы, тест мне выдал 40 баллов! За труды?
Пробежался, немного упростил. Не логику, только лишнее убрал. Не разбирался, зачем эти пароли-распароли, показать-скрыть...
Скрытый текст |
---|
Код |
---|
Const sPass As String = 1
Dim sName As String
Sub СнятьЗащитуАрхив(): Sheets("Архив").Unprotect (sPass): End Sub
Sub СнятьЗащитуТест(): Sheets("Тест").Unprotect (sPass): End Sub
Sub ЗащитаАрхив(): Sheets("Архив").Protect (sPass): End Sub
Sub ЗащитаТестСтарт()
With Sheets("Тест")
.Range("C2:C11").Locked = False
.Range("C2:C11").FormulaHidden = False
.Protect (sPass)
.Activate
End With
End Sub
Sub ЗащитаТестФиниш()
With Sheets("Тест")
.Range("C2:C11").Locked = True
.Range("C2:C11").FormulaHidden = False
.Protect (sPass)
.Activate
End With
End Sub
Sub СкрытьВопросы(): Sheets("Вопросы").Visible = xlSheetHidden: End Sub
Sub ПоказатьВопросы(): Sheets("Вопросы").Visible = xlSheetVisible: End Sub
Sub ВыдатьБалл()
Sheets("Вопросы").Range("H1").Copy Sheets("Тест").Range("F1")
End Sub
Sub ВвестиФамилию()
sName = InputBox("Напиши свою фамилию", "")
End Sub
Sub ПроверитьФамилию()
Dim sNameVerify As Variant
sNameVerify = InputBox("Напиши свою фамилию", "")
If sNameVerify <> sName Then MsgBox "Будь внимательнее": Call ПроверитьФамилию
End Sub
Sub StartTest()
Application.ScreenUpdating = False
ВвестиФамилию
СнятьЗащитуТест
ПоказатьВопросы
НовыеВопросы
СкрытьВопросы
ЗащитаТестСтарт
Application.ScreenUpdating = True
' Application.OnTime Now + TimeValue("0:0:15"), "EndTest"
End Sub
Sub EndTest()
Application.ScreenUpdating = False
ПроверитьФамилию
СнятьЗащитуТест
ПоказатьВопросы
СнятьЗащитуАрхив
ВыдатьБалл
В_Архив
СкрытьВопросы
ЗащитаАрхив
ЗащитаТестФиниш
Application.ScreenUpdating = True
End Sub
|
|