Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2010, 12:36   #1
Fox River
Пользователь
 
Регистрация: 08.12.2010
Сообщений: 12
По умолчанию Случайный выбор заголовка label

Необходимо случайно выбирать из 100 строк которые идут одна за другой заголовок label в userform. Есть форма на которой размещен Label. При каждом выведении на экран данной формы, заголовок (caption) label должен случайным образом меняться. Подскажите пожалуйста как это сделать.

Пример
Код:
Private Sub Label2_Click()
Label2.Caption = Application.ThisWorkbook.Sheets("Заголовки").Range("A1").Value

End Sub
Вместо A1 должна браться случайно следующая ячейка.
Fox River вне форума Ответить с цитированием
Старый 14.12.2010, 12:51   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Код:
Private Sub Label2_Click()
    iRnd = Int((100 - 1 + 1) * Rnd + 1)    '100 строк
    Label2.Caption = Application.ThisWorkbook.Sheets("Заголовки").Range("A" & iRnd).Value
End Sub
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 14.12.2010, 12:56   #3
Fox River
Пользователь
 
Регистрация: 08.12.2010
Сообщений: 12
По умолчанию

Спасибо VictorM! Огромное спасибо.
Fox River вне форума Ответить с цитированием
Старый 14.12.2010, 12:59   #4
Fox River
Пользователь
 
Регистрация: 08.12.2010
Сообщений: 12
По умолчанию

Скажите, будет браться случайная строка от 1 до 100?
И ради обучения объясните зачем отнимать от 100 единицу и тут же прибавлять ее?
Fox River вне форума Ответить с цитированием
Старый 14.12.2010, 13:02   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Скажите, будет браться случайная строка от 1 до 100?
Совершенно верно, только не строка а ячейка.
Цитата:
И ради обучения объясните зачем отнимать от 100 единицу и тут же прибавлять ее?
Цитата:
Для того, чтобы получить случайное целое число в заданном диапазоне, достаточно использовать нижеприведённую инструкцию, где ВерхняяГраница это максимальное число нужного диапазона, а НижняяГраница это минимальное число этого же диапазона.
iRnd = Int((ВерхняяГраница - НижняяГраница + 1) * Rnd + НижняяГраница)
Источник : Справка Microsoft Office
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 14.12.2010 в 13:12.
VictorM вне форума Ответить с цитированием
Старый 14.12.2010, 13:13   #6
Fox River
Пользователь
 
Регистрация: 08.12.2010
Сообщений: 12
По умолчанию

Спасибо еще раз! Скажите а как изменить код чтобы заголовок менялся не при нажатии мыши а при открытии самой формы. Какой метод надо прописать не click а например onload или другой?
Fox River вне форума Ответить с цитированием
Старый 14.12.2010, 13:17   #7
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Можно тогда так
Код:
Private Sub UserForm_Activate()
    iRnd = Int((100 - 1 + 1) * Rnd + 1)
    Label2.Caption = Application.ThisWorkbook.Sheets("Заголовки").Range("A" & iRnd).Value
End Sub
Только вот заметил.
Если Вам нужно менять именно заголовк формы то напишите так
Код:
Private Sub UserForm_Activate()
    iRnd = Int((100 - 1 + 1) * Rnd + 1)
    Caption = Application.ThisWorkbook.Sheets("Заголовки").Range("A" & iRnd).Value
End Sub
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 14.12.2010 в 13:21.
VictorM вне форума Ответить с цитированием
Старый 14.12.2010, 13:19   #8
Fox River
Пользователь
 
Регистрация: 08.12.2010
Сообщений: 12
По умолчанию

Спасибо, работает!
Fox River вне форума Ответить с цитированием
Старый 14.12.2010, 13:24   #9
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
работает!
А куда оно денется))
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Случайный выбор слов. nestorr Microsoft Office Word 5 30.08.2010 10:07
Случайный выбор файлов Stafford Общие вопросы .NET 1 27.07.2009 00:49
Случайный выбор значений из списка Stoodentka Microsoft Office Excel 4 14.07.2009 07:56
Случайный выбор с папки Marsik Помощь студентам 2 15.12.2007 19:04
случайный выбор имен SeRhy Помощь студентам 4 26.11.2007 15:00