Здравствуйте! Уважаемые специалисты, помогите пожалуйста создать макрос (процедуру?) для проверки выполнения задания (ий) сравнением формул в ответе с предварительно подготовленной. Созданный рекордером такой макрос второй командой фиксирует формулу, а не адрес нельзя использовать для других заданий – у него будет всегда один ответ. [vba]
Код
Sub Макрос3() Range("B4").Select ActiveCell.FormulaR1C1 = " =A4*A5" 'вправо (остается в макросе формула, а не адрес) 'копи в С4 Range("B4").Select Selection.Copy Range("C4").Select ActiveSheet.Paste 'влево (восстановление исходной формулы) Range("B4").Select Application.CutCopyMode = False 'снять штрихрамку ActiveCell.FormulaR1C1 = "=RC[-1]*R[1]C[-1]" 'выход Range("C18").Select End Sub
[/vba]
Здравствуйте! Уважаемые специалисты, помогите пожалуйста создать макрос (процедуру?) для проверки выполнения задания (ий) сравнением формул в ответе с предварительно подготовленной. Созданный рекордером такой макрос второй командой фиксирует формулу, а не адрес нельзя использовать для других заданий – у него будет всегда один ответ. [vba]
Код
Sub Макрос3() Range("B4").Select ActiveCell.FormulaR1C1 = " =A4*A5" 'вправо (остается в макросе формула, а не адрес) 'копи в С4 Range("B4").Select Selection.Copy Range("C4").Select ActiveSheet.Paste 'влево (восстановление исходной формулы) Range("B4").Select Application.CutCopyMode = False 'снять штрихрамку ActiveCell.FormulaR1C1 = "=RC[-1]*R[1]C[-1]" 'выход Range("C18").Select End Sub
Это уже ближе к ответу. Но для использования библиотеки заданий не хватает расшифровки процедуры Formulа. Напр., посмотрите как это не работает на призвольном задании. Задания выбираются по случайному закону. И поэтому необходимо каждый лист задания снабдить макросом. При этом библиотека - это замена заданий новыми. как обычная Б. И это не только для Excel. Но, как сказано, решение проблемы близко. С благодарностью ожидаю положительного результата.
Это уже ближе к ответу. Но для использования библиотеки заданий не хватает расшифровки процедуры Formulа. Напр., посмотрите как это не работает на призвольном задании. Задания выбираются по случайному закону. И поэтому необходимо каждый лист задания снабдить макросом. При этом библиотека - это замена заданий новыми. как обычная Б. И это не только для Excel. Но, как сказано, решение проблемы близко. С благодарностью ожидаю положительного результата.Max
Уважаемый Jhonson, в примере задания на изучение функции ЕСЛИ, входящей в стандартный список функций. Проверке подлежит именно это решение. Ведь в решениях других заданий (это не единственное) используется этот арсенал: суммесли, впр, Сумм, Sin, суммпроизв и тд и тп. Если для каждого решения подбирать особую форму для српвнения то это не решение. Насчет библиотеки - из нее я Вам показал два задания, а для контроля используется не одна сотня. Потому и требуется универсальный способ автоконтроя (универсальный макрос).
Уважаемый Jhonson, в примере задания на изучение функции ЕСЛИ, входящей в стандартный список функций. Проверке подлежит именно это решение. Ведь в решениях других заданий (это не единственное) используется этот арсенал: суммесли, впр, Сумм, Sin, суммпроизв и тд и тп. Если для каждого решения подбирать особую форму для српвнения то это не решение. Насчет библиотеки - из нее я Вам показал два задания, а для контроля используется не одна сотня. Потому и требуется универсальный способ автоконтроя (универсальный макрос).Max
Сообщение отредактировал Max - Суббота, 10.08.2013, 00:08
А вобще, если вы сами не можете адаптировать полученный макрос для своих нужд, то лучше выкладывайте ПОЛНЫЙ файл. ЗЫ: эталонный лист в любом случае придется делать. Просто цвет шрифта на нем можно сделать белым и полностью защитить лист паролем. Либо добавлять лист только при проверке.
Если юзер сможет через VBA вытянуть ответы, то в проверке правильности написания им формул нет смысла.
Универсальный макрос, который подходит для проверки всего: [vba]
Код
Sub проверка_всего() If 0 = 0 Then MsgBox "Либо правильно, либо нет" End If End Sub
[/vba]
Как вариант:
А вобще, если вы сами не можете адаптировать полученный макрос для своих нужд, то лучше выкладывайте ПОЛНЫЙ файл. ЗЫ: эталонный лист в любом случае придется делать. Просто цвет шрифта на нем можно сделать белым и полностью защитить лист паролем. Либо добавлять лист только при проверке.
Если юзер сможет через VBA вытянуть ответы, то в проверке правильности написания им формул нет смысла.
Универсальный макрос, который подходит для проверки всего: [vba]
Код
Sub проверка_всего() If 0 = 0 Then MsgBox "Либо правильно, либо нет" End If End Sub
Уважаемый Jhonson! 1. Извините за задержку 2. Не представлял возможности использования Formula и FormulaLocal 3. Суть упрощенно: проверить правильность решения задачи (формулы) сравнением с заранее известной 4. Сожалею о длительных мучениях с книжками, а не с людьми. Адаптировать буду сам. 5. Не знаю как отблагодарить за терпение и Ваши знания В итоге: удивительно просто и прекрасно работает СПАСИБО Особая благодарность SkyPro. В том числе и за юмор. Серьезно благодарен за все. Ждите в гости с новыми вопросами.
Уважаемый Jhonson! 1. Извините за задержку 2. Не представлял возможности использования Formula и FormulaLocal 3. Суть упрощенно: проверить правильность решения задачи (формулы) сравнением с заранее известной 4. Сожалею о длительных мучениях с книжками, а не с людьми. Адаптировать буду сам. 5. Не знаю как отблагодарить за терпение и Ваши знания В итоге: удивительно просто и прекрасно работает СПАСИБО Особая благодарность SkyPro. В том числе и за юмор. Серьезно благодарен за все. Ждите в гости с новыми вопросами.Max
Сообщение отредактировал Max - Пятница, 09.08.2013, 23:57