![]() |
1с бухгалтерия...ответы на тесты
кто знает как сломать файлы екселя с макросами.........точнее нада достать ответы к вопросам от 1С Бухгалтерии!
|
тоесть "сломать"? запароленный документ нужно открыть, или 4то?
|
Цитата:
|
вообщем автору тема явно не нужна, гадать не будем. закрыто
|
открыл по просьбе топикстартера
|
Цитата:
ктонить сталкивался с таким!? |
ау!
неужели никто не вкурсе............?
|
Цитата:
Код:
если это так тогдаКод:
if это так |
Public StartTime As Long
Public CurrentTime As Long Public TimeBeforeEnd As Long Public Const TimeLimit = 30 * 60 Private Sub ПредыдущийЛист() ' ' Макрос записан (Вася Пупкин) ' ' Проверяем, осталось ли еще время CurrentTime = Timer() TimeBeforeEnd = TimeLimit - (CurrentTime - StartTime) If TimeBeforeEnd <= 0 Then MsgBox ("Время экзамена истекло") UserForm1.CommandButton3.Enabled = False UserForm1.Show End If For i = 1 To ActiveWorkbook.Sheets.Count - 1 ActiveWorkbook.Sheets(i).Cells(1, 12).Value = Format(Int(TimeBeforeEnd / 60), "00") + ":" + Format(TimeBeforeEnd Mod 60, "00") Next i i = ActiveSheet.Index If (ActiveSheet.Index = 1) Then GoTo Out Else Sheets(ActiveSheet.Index - 1).Select End If Out: End Sub Private Sub СледующийЛист() ' ' Макрос записан (Вася Пупкин) ' ' Проверяем, осталось ли еще время CurrentTime = Timer() TimeBeforeEnd = TimeLimit - (CurrentTime - StartTime) If TimeBeforeEnd <= 0 Then MsgBox ("Время экзамена истекло") UserForm1.CommandButton3.Enabled = False UserForm1.Show End If For i = 1 To ActiveWorkbook.Sheets.Count - 1 ActiveWorkbook.Sheets(i).Cells(1, 12).Value = Format(Int(TimeBeforeEnd / 60), "00") + ":" + Format(TimeBeforeEnd Mod 60, "00") Next i ' If (ActiveSheet.Index >= Sheets.Count - 1) Then GoTo Out Else Sheets(ActiveSheet.Index + 1).Select End If Out: End Sub Private Sub Закончить() Dim Results(14) As String Dim Person(6) As String Dim Ans As String Results(0) = "Вопрос" + Chr(9) + "Ответ" With ActiveWorkbook.Sheets("Ответы") For i = 1 To ActiveWorkbook.Sheets.Count - 1 If .Cells(22, i + 1).Value = "" Then Ans = "НЕТ" Else Ans = Format(.Cells(22, i + 1).Value, "0") End If Results(i) = Format(.Cells(21, i + 1), " 0000") + Chr(9) + " " + Ans Next Person(0) = .Cells(2, 3).Value Person(1) = .Cells(3, 3).Value Person(2) = .Cells(4, 3).Value Person(3) = "" Person(4) = "Задание N" + Format(.Cells(1, 3).Value, "000000") Person(5) = "Код АЦС " + .Cells(16, 3).Value Person(6) = "Дата " + Format(.Cells(18, 2).Value, "Short date") UserForm1.Person.List = Person 'Chr(10) + .Cells(3, 3).Value + Chr(10) + _ '.Cells(4, 3).Value Chr(10) + "Код АЦС " + .Cells(16, 3).Value + Chr(10) _ '+ "Дата " + .Cells(17, 3).Value UserForm1.Caption = "1C:Профессионал. Задание N" + Format(.Cells(1, 3).Value, "000000") End With UserForm1.Results.List = Results UserForm1.Show End Sub Private Sub Auto_Open() Dim Person As String With ActiveWorkbook.Sheets("Ответы") Person = .Cells(2, 3).Value + " " + .Cells(3, 3).Value + " " + .Cells(4, 3).Value UserForm2.Caption = "1C:Профессионал. Версия " + CStr(.Cells(1, 6)) + _ " Задание N" + Format(.Cells(1, 3).Value, "000000") End With UserForm2.Person.Caption = Person UserForm2.Show End Sub нихчего не могу понять.....где могут лежать пароли! |
Вот дополнение к твоему куску
Из модуля формы UserForm1 Код:
'Проверка ответовВ цикле Проверяются строки 20 и 22 начиная со второй колонки (листа ответы) Вот если это выражение Код:
(((A * B) + (A + B + B)) * C) = ActiveSheet.Cells(24, i) |
Цитата:
Начнем ломать!!!!!!!! ************************************************** ************************************************** ************** В модуле формы UserForm2 после 'Устанавливаем время Переделываем строку If (ActiveWorkbook.Sheets("Ответы").Cells(18, 3).Value = "") Then В # If (ActiveWorkbook.Sheets("Ответы").Cells(18, 3).Value = "") Or (ActiveWorkbook.Sheets("Ответы").Cells(18, 3).Value <> "") Then # Для того чтобы не было ругани насчет того что несколько раз проходить один и тот-же тест нельзя ************************************************** ************************************************** ************** ************************************************** ************************************************** ************** Дальше В модуле формы UserForm1 после C = ActiveSheet.TextBoxNum.Value добавляем # H = ActiveSheet.Cells(24, I) # Затем после If (((A * B) + (A + B + B)) * C) = ActiveSheet.Cells(24, I) Then 'Cells(24 +1 26.08.04 ActiveSheet.Cells(24, I).Value = "+" N = N + 1 Else ActiveSheet.Cells(24, I).Value = "-" End If Добавим # J = (H / C - A) / (A + 2) ' Вот собственно формула обратного расчета т.е J должна быть = правильному ответу ActiveSheet.Cells(29, I) = J ' Собственно здесь в цикле в каждую ячейку 29 строки листа "ответы" добавляем правильный ответ # Вобщем во время прохождения теста можно и не отвечать на вопросы, ответы все равно будут проставлены, только при условии что в 24 строке стоят цифры, а ни минусы или плюсы После коментируем строку ActiveWorkbook.Save Должно получиться 'ActiveWorkbook.Save Это чтобы после окончания теста результаты не сохранялись ************************************************** ************************************************** ************** Теперь самое важное С листа "ответы" в обязательном порядке нужно снять защиту чтобы ответы могли проставится в 29 строке Да и еще значение "С" мне впринципе больше и не нужно. гыыыыыыыы ))))))))))))))))))))) ************************************************** ************************************************** ************** Ну вот и все удачного взлома)))))))))))))))))))))) ************************************************** ************************************************** ************** |
| Время: 05:36 |