Вопрос № 54332: Здравствуйте, уважаемые эксперты!
Проблемная ситуация, никак не могу обойти ее и надеюсь на Вашу помощь. Постараюсь изложить как можно яснее и короче.
Проблема вот в чем: в Excel 97 используется UserForm для короткого теста. Вопросы подс...
Вопрос № 54.332
Здравствуйте, уважаемые эксперты!
Проблемная ситуация, никак не могу обойти ее и надеюсь на Вашу помощь. Постараюсь изложить как можно яснее и короче.
Проблема вот в чем: в Excel 97 используется UserForm для короткого теста. Вопросы подставляются из скрытого листа.Здесь все нормально, никаких глюков. В этом VeryHidden Листе Строка 1 - это шапка таблицы, то есть содержимое ячеек A1:D1 не изменяется. Значения ячеек А2:А6 и B2:B6 также фиксированы (столбец А содержит вопросы, столбец В - верные ответы). Ответы испытуемого по идее должны записываться в ячейки C2:C6, но записываются они на самом деле со смещением на 1 строку вниз. При этом пятый (последний) ответ
вообще никуда не записывается! Думал - проблема в formulaR1C1 и заменил на Value: эффект нулевой. А самое интересное - в четвертый столбец количество времени, потраченное на каждый ответ, записывается правильно, заполняются ячейки D2:D6.
Не могли бы Вы подсказать, в чем причина такого странного поведения приложения ? В глючности Office не могу упрекнуть. Весь основной код -в приложении, процедуры подсчета времени не стал включать, так как они работают нормально.
Приложение:
Отправлен: 04.09.2006, 22:18
Вопрос задал: Varfolomey (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Genyaa
Здравствуйте, Varfolomey!
Мне кажется, есть ошибка в логике самой программы... на примере case 1:
- сюда программа входит при значении NumAns = 1 (это значение присваивается при активации) при нажатии на CommandButton1
- войдя, устанавлививается значение Label1.Caption = "Вопрос № 1" и т.д и вносится ответ во вторую строку... Обратите внимание - по первому нажатию кнопки (уже, по всей видимости, по принятию первого ответа) Label становится "Вопрос №1", хотя наверно должно уже появиться "Вопрос №2"
Однако, судя по описанию должно было быть несколько иначе:
- по активации в Label1 устанавливается "Вопрос №1" и NumAns = 1
- ожидается ответ.
Далее при первом ответе (NumAns = 1) case 1 должен переключить Label2 на "Вопрос №2" (из третей строки листа с вопросами), подготовив форму к принятию второго ответа, но значение (до обнуления) TextBox2 нужно внести в строку 2, и переключиться на NumAns = 2.
--------- Всякое решение плодит новые проблемы.
Ответ отправил: Genyaa (статус: 7-ой класс)
Ответ отправлен: 04.09.2006, 23:50 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ! Проверим еще раз...
Отвечает: Макаренко Е.В.
Здравствуйте, Varfolomey!
Попробуйте пройти программу под отладчиком.
Попробуйте заменить оператор Range() на Cells(i,j)- прямая запись в ячейку
Cинтаксис примерно такой: Worksheets(2).Cells(НОМЕР строки, НОМЕР столбца)
Вместо номера строки подставьте переменную NumAns или (NumAns+1).
Должно помочь.
--------- осторожность, точность... и горит все синим пламенем! :))
Ответ отправил: Макаренко Е.В. (статус: 9-ый класс)
Ответ отправлен: 05.09.2006, 09:58 Оценка за ответ: 5 Комментарий оценки: Вам также спасибо за участие!