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

Вход

Регистрация

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

 

= Мир MS Excel/Прописать в ячейки определенные числа случайно - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Прописать в ячейки определенные числа случайно (Макросы Sub)
Прописать в ячейки определенные числа случайно
Dмитрий Дата: Воскресенье, 22.09.2013, 20:58 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Можно ли при помощи VBA прописать в ячейки определенные числа (например 100, 200, 250, 500, 1000), но сделать это как случайными числами???
Например:
ПУСК ячейка А1 = 100, В2 = 1000. СТОП
ПУСК ячейка А1 = 500, В2 = 100. СТОП
ПУСК ячейка А1 = 200, В2 = 500. СТОП
и так далее

Я предполагаю, что здесь нужно использовать Randomize, но как сгенерировать?
 
Ответить
СообщениеМожно ли при помощи VBA прописать в ячейки определенные числа (например 100, 200, 250, 500, 1000), но сделать это как случайными числами???
Например:
ПУСК ячейка А1 = 100, В2 = 1000. СТОП
ПУСК ячейка А1 = 500, В2 = 100. СТОП
ПУСК ячейка А1 = 200, В2 = 500. СТОП
и так далее

Я предполагаю, что здесь нужно использовать Randomize, но как сгенерировать?

Автор - Dмитрий
Дата добавления - 22.09.2013 в 20:58
RAN Дата: Воскресенье, 22.09.2013, 22:21 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
нужно использовать Randomiz

Не нужно. Точнее - не то, чтобы не нужно, но не обязательно.
Нужно Rnd


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Воскресенье, 22.09.2013, 22:23
 
Ответить
Сообщение
нужно использовать Randomiz

Не нужно. Точнее - не то, чтобы не нужно, но не обязательно.
Нужно Rnd

Автор - RAN
Дата добавления - 22.09.2013 в 22:21
Dмитрий Дата: Воскресенье, 22.09.2013, 23:32 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Может примерно так
[vba]
Код
For Each aCell In mR.Cells
     aCell = CInt(100 * Rnd)
      
Next
[/vba]
но тогда числа выводятся от одного до ста, а нужно конкретно 100,200,250,500,1000
 
Ответить
СообщениеМожет примерно так
[vba]
Код
For Each aCell In mR.Cells
     aCell = CInt(100 * Rnd)
      
Next
[/vba]
но тогда числа выводятся от одного до ста, а нужно конкретно 100,200,250,500,1000

Автор - Dмитрий
Дата добавления - 22.09.2013 в 23:32
paramedic Дата: Понедельник, 23.09.2013, 09:42 | Сообщение № 4
Группа: Проверенные
Ранг: Участник
Сообщений: 67
Репутация: 6 ±
Замечаний: 0% ±

Excel 2007
Тогда можно так (влоб):
[vba]
Код

For Each aCell In mR.Cells
     Select Case Int(5 * Rnd+1)
        Case 1
            aCell = 100
        Case 2
            aCell = 200
        Case 3
            aCell = 250
        Case 4
            aCell = 500
        Case 5
            aCell = 1000
      End Select
Next
[/vba]


Я не ламер - я честный чайник
 
Ответить
СообщениеТогда можно так (влоб):
[vba]
Код

For Each aCell In mR.Cells
     Select Case Int(5 * Rnd+1)
        Case 1
            aCell = 100
        Case 2
            aCell = 200
        Case 3
            aCell = 250
        Case 4
            aCell = 500
        Case 5
            aCell = 1000
      End Select
Next
[/vba]

Автор - paramedic
Дата добавления - 23.09.2013 в 09:42
Hugo Дата: Понедельник, 23.09.2013, 10:39 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
Или тогда уж

[vba]
Код
    For Each aCell In mR.Cells
         aCell = Array(100, 200, 250, 500, 1000)(Int(5 * Rnd))
     Next
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеИли тогда уж

[vba]
Код
    For Each aCell In mR.Cells
         aCell = Array(100, 200, 250, 500, 1000)(Int(5 * Rnd))
     Next
[/vba]

Автор - Hugo
Дата добавления - 23.09.2013 в 10:39
RAN Дата: Понедельник, 23.09.2013, 11:16 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Или тогда уж
[vba]
Код
For Each aCell In mR.Cells
         aCell.Value = Choose(Int(5 * Rnd + 1), 100, 200, 250, 500, 1000)
     Next
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИли тогда уж
[vba]
Код
For Each aCell In mR.Cells
         aCell.Value = Choose(Int(5 * Rnd + 1), 100, 200, 250, 500, 1000)
     Next
[/vba]

Автор - RAN
Дата добавления - 23.09.2013 в 11:16
Dмитрий Дата: Понедельник, 23.09.2013, 12:41 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Спасибо большое! Все варианты работают. Вот какой код у меня получился:
[vba]
Код
Private Sub Worksheet_Activate()
Randomize
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CaseDigital
End Sub
Sub CaseDigital()
Dim aCell As Range, R As Range
      Set R = Selection
        
For Each aCell In R.Cells
          aCell.Value = Choose(Int(5 * Rnd + 1), 100, 200, 250, 500, 1000)
      Next
Set R = Nothing
End Sub
[/vba]
Могу ли я как-то это дело подвести под галочку? Типа: есть галочка - работает
Ведь ActiveX создает свою среду, а у меня уже есть Private Sub Worksheet_Activate и Sub CaseDigital(). Тупо впихнуть все под "галочку"? Вряд ли будет работать
К сообщению приложен файл: 2966646.xlsb (15.1 Kb)


Сообщение отредактировал Dмитрий - Понедельник, 23.09.2013, 12:46
 
Ответить
СообщениеСпасибо большое! Все варианты работают. Вот какой код у меня получился:
[vba]
Код
Private Sub Worksheet_Activate()
Randomize
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CaseDigital
End Sub
Sub CaseDigital()
Dim aCell As Range, R As Range
      Set R = Selection
        
For Each aCell In R.Cells
          aCell.Value = Choose(Int(5 * Rnd + 1), 100, 200, 250, 500, 1000)
      Next
Set R = Nothing
End Sub
[/vba]
Могу ли я как-то это дело подвести под галочку? Типа: есть галочка - работает
Ведь ActiveX создает свою среду, а у меня уже есть Private Sub Worksheet_Activate и Sub CaseDigital(). Тупо впихнуть все под "галочку"? Вряд ли будет работать

Автор - Dмитрий
Дата добавления - 23.09.2013 в 12:41
RAN Дата: Понедельник, 23.09.2013, 12:51 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Тупо ничего не понятно.
Файл в студию.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеТупо ничего не понятно.
Файл в студию.

Автор - RAN
Дата добавления - 23.09.2013 в 12:51
Dмитрий Дата: Понедельник, 23.09.2013, 20:51 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Возможно я в чем то ошибся , но у меня все работает.
При нажатии на любую ячейку, появляется случайное число из допустимо возможных (100, 500 и т.д.)
Очень полезная штука, для меня, например. Приходится часто вводить выдуманные числа, дабы скрыть прорехи.
В последний раз (после двух тысяч таких чисел) я и решил что-нибудь "наваять" в таком роде.
Беда лишь в том, что я работаю на этом же листе, и случайное или преднамеренное нажатие на ячейку выведет случайное число. Вот я и подумал может можно поставить галочку, либо кнопку какую-то - в принципе неважно. Нажал, наставил чисел сколько нужно, отжал и дальше работай.
ФАЙЛ НИЖЕ
К сообщению приложен файл: 2759636.xlsb (15.1 Kb)
 
Ответить
СообщениеВозможно я в чем то ошибся , но у меня все работает.
При нажатии на любую ячейку, появляется случайное число из допустимо возможных (100, 500 и т.д.)
Очень полезная штука, для меня, например. Приходится часто вводить выдуманные числа, дабы скрыть прорехи.
В последний раз (после двух тысяч таких чисел) я и решил что-нибудь "наваять" в таком роде.
Беда лишь в том, что я работаю на этом же листе, и случайное или преднамеренное нажатие на ячейку выведет случайное число. Вот я и подумал может можно поставить галочку, либо кнопку какую-то - в принципе неважно. Нажал, наставил чисел сколько нужно, отжал и дальше работай.
ФАЙЛ НИЖЕ

Автор - Dмитрий
Дата добавления - 23.09.2013 в 20:51
nilem Дата: Понедельник, 23.09.2013, 20:58 | Сообщение № 10
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Вот, попробуйте с галочкой :)
К сообщению приложен файл: _2759636-1.xlsb (20.1 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеВот, попробуйте с галочкой :)

Автор - nilem
Дата добавления - 23.09.2013 в 20:58
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Прописать в ячейки определенные числа случайно (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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