У меня есть викторина в файле excel (версия 2007), выполненная с использованием комбинации пользовательских форм vba и функций листа. Когда файл excel открывается, первым листом является «викторина», а второй скрытый лист - «sheet1». Тест отлично работает, но мне нужно внести небольшое изменение в логику. В нем есть лист вопросов/ответов (sheet1), который сконструирован таким образом, что первая буква вопроса имеет префикс ответа. Например, вот пример данных в диапазоне A1: A20. Ответ на первый вопрос - «b», поэтому вопрос префикс «b».Использование функции Rand рабочего листа или rnd() excel VBA
bWho is a cricketer?
Tiger Woods
Sachin Tendulkar
Will Smith
Bill Gates
aWho is a Golfer
Tiger Woods
Sachin Tendulkar
Will Smith
Bill Gates
dWho is an Entrepreneur
Tiger Woods
Sachin Tendulkar
Will Smith
Bill Gates
cWho is an actor
Tiger Woods
Sachin Tendulkar
Will Smith
Bill Gates
Вопросы рандомизированы и работает правильно, но когда отображается случайный вопрос, последовательность ответа никогда не меняется. Следовательно, единственное, что мне нужно сделать, это разобрать четыре ответа (в листе 1), когда книга открывается, не перебирая логику префикса ответа на первую букву вопроса и сохраняя все остальное. Пожалуйста, помогите мне, как я могу это достичь. Какой код можно записать и какой раздел vba (sheet/module)?
Я показываю вам пример вопроса 1, как это должно быть после рандомизации.
cWho is a cricketer?
Will Smith
Bill Gates
Sachin Tendulkar
Tiger Woods
Здесь варианты перемешаны, а также правильный ответ обновляется в вопросе (с префиксом «с», который был ранее «б») Спасибо!
Похоже, вы могли бы использовать модуль * * Class или даже * Словарь *. Вы можете проверить любой из них. – L42
http://www.cpearson.com/excel/ShuffleArray.aspx Обратите внимание на значение ответа перед перетасовкой, затем найдите индекс ответа в перетасованном массиве. –
Это хорошее начало ... скоро вернется. спасибо –