Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос для проверки выполнения учебных заданий в Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Макрос для проверки выполнения учебных заданий в Excel
Felix Дата: Среда, 07.08.2013, 20:50 | Сообщение № 1
Группа: Гости
Здравствуйте!
Уважаемые специалисты, помогите пожалуйста создать макрос (процедуру?) для проверки выполнения задания (ий) сравнением формул в ответе с предварительно подготовленной.
Созданный рекордером такой макрос второй командой фиксирует формулу, а не адрес нельзя использовать для других заданий – у него будет всегда один ответ.
[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
[/vba]

Автор - Felix
Дата добавления - 07.08.2013 в 20:50
SkyPro Дата: Четверг, 08.08.2013, 00:07 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Пример приложите и будем думать.


skypro1111@gmail.com
 
Ответить
СообщениеПример приложите и будем думать.

Автор - SkyPro
Дата добавления - 08.08.2013 в 00:07
Max Дата: Четверг, 08.08.2013, 15:41 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Полагаю из приложения все прояснится
Спасибо за внимание
К сообщению приложен файл: 4766244.xls (26.5 Kb)
 
Ответить
СообщениеПолагаю из приложения все прояснится
Спасибо за внимание

Автор - Max
Дата добавления - 08.08.2013 в 15:41
Jhonson Дата: Четверг, 08.08.2013, 16:57 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

так?
К сообщению приложен файл: 1594024.xls (50.5 Kb)


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
Сообщениетак?

Автор - Jhonson
Дата добавления - 08.08.2013 в 16:57
Max Дата: Четверг, 08.08.2013, 20:32 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Это уже ближе к ответу. Но для использования библиотеки заданий не хватает расшифровки процедуры Formulа.
Напр., посмотрите как это не работает на призвольном задании. Задания выбираются по случайному закону. И поэтому
необходимо каждый лист задания снабдить макросом. При этом библиотека - это замена заданий новыми. как обычная Б.
И это не только для Excel.
Но, как сказано, решение проблемы близко.
С благодарностью ожидаю положительного результата.
К сообщению приложен файл: 9337323.xls (39.5 Kb)
 
Ответить
СообщениеЭто уже ближе к ответу. Но для использования библиотеки заданий не хватает расшифровки процедуры Formulа.
Напр., посмотрите как это не работает на призвольном задании. Задания выбираются по случайному закону. И поэтому
необходимо каждый лист задания снабдить макросом. При этом библиотека - это замена заданий новыми. как обычная Б.
И это не только для Excel.
Но, как сказано, решение проблемы близко.
С благодарностью ожидаю положительного результата.

Автор - Max
Дата добавления - 08.08.2013 в 20:32
Jhonson Дата: Четверг, 08.08.2013, 22:28 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Но для использования библиотеки
Не вижу никаких библиотек!
каждый лист задания снабдить макросом
Какой "каждый" лист нужно снабдить макросом?
Вообще ничего не понятно, что нужно то?
В вашем примере напишите эту формулу из ячейки H14
Код
=ЕСЛИ(B50<=C50;2*B50-C50;5*B50*2*C50)
так
Код
=IF(B50<=C50,2*B50-C50,5*B50*2*C50)
и все будет работать.


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
Сообщение
Но для использования библиотеки
Не вижу никаких библиотек!
каждый лист задания снабдить макросом
Какой "каждый" лист нужно снабдить макросом?
Вообще ничего не понятно, что нужно то?
В вашем примере напишите эту формулу из ячейки H14
Код
=ЕСЛИ(B50<=C50;2*B50-C50;5*B50*2*C50)
так
Код
=IF(B50<=C50,2*B50-C50,5*B50*2*C50)
и все будет работать.

Автор - Jhonson
Дата добавления - 08.08.2013 в 22:28
Max Дата: Пятница, 09.08.2013, 01:29 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Уважаемый Jhonson,
в примере задания на изучение функции ЕСЛИ, входящей в стандартный список функций. Проверке подлежит именно это решение. Ведь в решениях других заданий (это не единственное) используется этот арсенал: суммесли, впр, Сумм, Sin, суммпроизв и тд и тп. Если для каждого решения подбирать особую форму для српвнения то это не решение.
Насчет библиотеки - из нее я Вам показал два задания, а для контроля используется не одна сотня. Потому и требуется универсальный способ автоконтроя (универсальный макрос).


Сообщение отредактировал Max - Суббота, 10.08.2013, 00:08
 
Ответить
СообщениеУважаемый Jhonson,
в примере задания на изучение функции ЕСЛИ, входящей в стандартный список функций. Проверке подлежит именно это решение. Ведь в решениях других заданий (это не единственное) используется этот арсенал: суммесли, впр, Сумм, Sin, суммпроизв и тд и тп. Если для каждого решения подбирать особую форму для српвнения то это не решение.
Насчет библиотеки - из нее я Вам показал два задания, а для контроля используется не одна сотня. Потому и требуется универсальный способ автоконтроя (универсальный макрос).

Автор - Max
Дата добавления - 09.08.2013 в 01:29
Jhonson Дата: Пятница, 09.08.2013, 07:50 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Если для каждого решения подбирать особую форму для српвнения то это не решение
Если проблема только в этом, то в макросе замените Formula на FormulaLocal


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
Сообщение
Если для каждого решения подбирать особую форму для српвнения то это не решение
Если проблема только в этом, то в макросе замените Formula на FormulaLocal

Автор - Jhonson
Дата добавления - 09.08.2013 в 07:50
SkyPro Дата: Пятница, 09.08.2013, 12:41 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Как вариант:

А вобще, если вы сами не можете адаптировать полученный макрос для своих нужд, то лучше выкладывайте ПОЛНЫЙ файл.
ЗЫ: эталонный лист в любом случае придется делать. Просто цвет шрифта на нем можно сделать белым и полностью защитить лист паролем.
Либо добавлять лист только при проверке.

Если юзер сможет через VBA вытянуть ответы, то в проверке правильности написания им формул нет смысла.

Универсальный макрос, который подходит для проверки всего:
[vba]
Код
Sub проверка_всего()
If 0 = 0 Then
MsgBox  "Либо правильно, либо нет"
End If
End Sub
[/vba]
К сообщению приложен файл: 8654146.xls (64.5 Kb)


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Пятница, 09.08.2013, 12:49
 
Ответить
СообщениеКак вариант:

А вобще, если вы сами не можете адаптировать полученный макрос для своих нужд, то лучше выкладывайте ПОЛНЫЙ файл.
ЗЫ: эталонный лист в любом случае придется делать. Просто цвет шрифта на нем можно сделать белым и полностью защитить лист паролем.
Либо добавлять лист только при проверке.

Если юзер сможет через VBA вытянуть ответы, то в проверке правильности написания им формул нет смысла.

Универсальный макрос, который подходит для проверки всего:
[vba]
Код
Sub проверка_всего()
If 0 = 0 Then
MsgBox  "Либо правильно, либо нет"
End If
End Sub
[/vba]

Автор - SkyPro
Дата добавления - 09.08.2013 в 12:41
Max Дата: Пятница, 09.08.2013, 20:35 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Уважаемый Jhonson!
1. Извините за задержку
2. Не представлял возможности использования Formula и FormulaLocal
3. Суть упрощенно: проверить правильность решения задачи (формулы) сравнением с заранее известной
4. Сожалею о длительных мучениях с книжками, а не с людьми. Адаптировать буду сам.
5. Не знаю как отблагодарить за терпение и Ваши знания
В итоге: удивительно просто и прекрасно работает СПАСИБО
Особая благодарность SkyPro. В том числе и за юмор. Серьезно благодарен за все. Ждите в гости с новыми вопросами.


Сообщение отредактировал Max - Пятница, 09.08.2013, 23:57
 
Ответить
СообщениеУважаемый Jhonson!
1. Извините за задержку
2. Не представлял возможности использования Formula и FormulaLocal
3. Суть упрощенно: проверить правильность решения задачи (формулы) сравнением с заранее известной
4. Сожалею о длительных мучениях с книжками, а не с людьми. Адаптировать буду сам.
5. Не знаю как отблагодарить за терпение и Ваши знания
В итоге: удивительно просто и прекрасно работает СПАСИБО
Особая благодарность SkyPro. В том числе и за юмор. Серьезно благодарен за все. Ждите в гости с новыми вопросами.

Автор - Max
Дата добавления - 09.08.2013 в 20:35
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!