2013-12-02 9 views
1

У меня была игра с excel 2007 VBA и я надеялся создать макрос, который генерирует случайное число, а затем выводит строку на основе числа, сгенерированного. Например,Выбор условных ячеек VBA

Number  String 
1   Athena 
2   Belerephone 
3   Castor 
4   Dionysos 

Если случайное число равно 4, то выход будет Дионис, 1 будет Афина и так далее.

В принципе, я хочу, чтобы макрос просматривал столбец «Число», находил ячейку, которая соответствует произвольно сгенерированному номеру, а затем выводит строку в ячейке справа.

У меня есть таблица подобного характера в моем листе Excel.

До сих пор я не имел большого успеха при этом, каких-либо мыслей?

ответ

0

С вашими данными A1 через B4, используйте:

= ВПР (RANDBETWEEN (1,4), A1: B4,2, FALSE) или его эквивалент VBA

EDIT # 1:

с верхней границы таблицы хранится в ячейке D3:

= ВПР (RANDBETWEE N (1, D3), НЕПОСРЕДСТВЕННО («A1: B» & D3), 2, FALSE)

+0

В функции randbetween вы можете заставить его принимать значения ячеек? Я хотел бы расширить таблицу за пределами a1: b4 ... – Gokotai

+0

Итак, вы хотите пойти ниже, чем ** 4 ** ?? –

+0

Хотелось бы подняться выше, но верхняя граница указана в ячейке, скажем, D3 ... – Gokotai

0

Вы можете использовать application.worksheetfunction.vlookup для выполнения vlookup внутри вашего макроса и использовать функцию 1+Int(10 * Rnd()) для возврата случайных чисел от 1 до 10 (и, возможно, 11, но статистически маловероятных).

Смежные вопросы