Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 5
1

Генерация целых чисел в ячейке

11.11.2016, 20:15. Показов 3077. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую, уважаемые программисты! Помогите, пожалуйста написать код для макроса в MSE.
Visual Basic
1
2
3
4
Sub GetRandom()
    Randomize
    ThisWorkbook.Worksheets("Лист1").Range("A1").Value = Rnd * 50 - 20
End Sub
Пишу такой код, а рандом выдает и дробные, и отрицательные числа, а мне надо, чтобы выдавались значения типа Byte, например. Кто поможет помочь и написать нормальный код?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2016, 20:15
Ответы с готовыми решениями:

Генерация целых случайный чисел
Данный скрипт генерирует числа через точку например "3.648734523459", помогите исправить, чтобы...

Получить внутреннее представление целых чисел в 2-х байтовой ячейке.
Получить внутреннее представление целых чисел 16, 32, -25 в 2-х байтовой ячейке. Какое максимальное...

Генерация случайных целых чисел в заданном интервале
Здравствуйте! Правильно ли я прописал код случайных чисел от -1 до 2 ??? Спасибо. procedure...

Генерация массива целых случайных чисел, которые не повторяются
Нужно получить числа от 0 до 15 в рандомном порядке, делаю так: BOOL...

8
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
11.11.2016, 20:56 2
Лучший ответ Сообщение было отмечено xxnitrosxx как решение

Решение

xxnitrosxx, можно использовать функцию листа СЛУЧМЕЖДУ
Visual Basic
1
2
3
ThisWorkbook.Worksheets("Лист1").Range("A1").Value = worksheetfunction.randbetween(0,255)
'или
ThisWorkbook.Worksheets("Лист1").Range("A1").Value = int(rnd*256)
1
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 5
11.11.2016, 22:21  [ТС] 3
круто, большое спасибо!

Добавлено через 1 час 19 минут
приветствую. а можно ли так сделать, чтобы рандомная функция вставляла числа до тех пор, пока все ячейки из какогото диапазона ячеек не станут например красного цвета?
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
11.11.2016, 23:04 4
xxnitrosxx, эмм... а почему ячейки становятся красного цвета от вставки числа? Им стыдно, что ли?
0
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 5
12.11.2016, 10:16  [ТС] 5
нет. просто я подбираю определенные числа. эти числа используются в формулах. в формулах получаются значения и сравниваются со стандартными. далее определяется процент ошибки полученного и стандартного чисел. далее я выделяю все проценты ошибок и накладываю на них с помощью условного форматирования правило, чтобы выделялись красным цветом те проценты, которые в определенном диапазоне. поэтому хотелось бы создать цикл подбора чисел до тех пор, пока все проценты не станут красного цвета. можете помочь?
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
12.11.2016, 10:56 6
xxnitrosxx, может лучше Поиск решения использовать? (F1 - поиск решения).
Или более простой инструмент Данные - Анализ что-если - Подбор параметра.

Да, и без вашего файла вряд ли чем-то еще можно помочь.
0
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 5
12.11.2016, 11:15  [ТС] 7
файл в архиве, потому что сайт не захотел принимать книгу с поддержкой макросов. я думаю, что проще будет написать второй макрос с помощью While, который будет жать на кнопку АА до тех пор, пока все числа из диапазона J7-J34 не станут оранжевого цвета. Можете помочь?
Вложения
Тип файла: rar Книга121.rar (18.7 Кб, 2 просмотров)
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
14.11.2016, 02:26 8
Лучший ответ Сообщение было отмечено xxnitrosxx как решение

Решение

Цитата Сообщение от xxnitrosxx Посмотреть сообщение
я думаю, что проще будет написать второй макрос с помощью While, который будет жать на кнопку АА до тех пор, пока все числа из диапазона J7-J34 не станут оранжевого цвета
Боюсь, долго жать придется.
Вот макрос, который вставляет случайные числа в указанные ячейки 10000 раз, причем определяет, сколько результирующих ячеек попало в нужный диапазон - формула в яч. L7, запоминает лучшую комбинацию случ. чисел, и в конце вставляет ее.
У меня получалось максимум 23 из 28. Попробуйте менять диапазон случ. чисел.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub GetRandom()
Dim chgRange As Range, tstRange As Range, c As Range
Dim bestNum() As Long, num() As Long, i&, j&, bestCrit&
  Set chgRange = Range("B10,B15,B22,B25,B32,B20,B7")      'изменяемые ячейки
  Set tstRange = Range("L7")                              'критерий (чем больше, тем лучше)
  ReDim num(1 To chgRange.Count)
  Application.Calculation = xlCalculationManual
  Application.ScreenUpdating = False
  Randomize
  For i = 1 To 10000                                      'число повторов
    j = 0
    For Each c In chgRange
      j = j + 1
      num(j) = Int(21 + Rnd * 30)                         'диапазон случайных - от 21 до 50
      c = num(j)
    Next
    ActiveSheet.Calculate
    If tstRange > bestCrit Then
      bestNum = num
      bestCrit = tstRange
      If bestCrit = 28 Then Exit For
    End If
  Next
  j = 0
  For Each c In chgRange
    j = j + 1
    c = bestNum(j)
  Next
  Application.Calculation = xlCalculationAutomatic
  Application.ScreenUpdating = True
End Sub
Вложения
Тип файла: rar Книга121.rar (20.1 Кб, 6 просмотров)
1
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 5
14.11.2016, 11:24  [ТС] 9
Казанский, вау, огромнейшее спасибо вам. вы просто волшебник!
0
14.11.2016, 11:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2016, 11:24
Помогаю со студенческими работами здесь

Генерация массива целых случайных чисел, которые не повторяются
Случайные числа. Генерация случайного целого числа в заданном диапазоне. Генерация массива целых...

Рекурсия: генерация ряда целых чисел от N до M, в порядке возрастания (Turbo Prolog)
Есть задача: -- Написать программу генерации ряда целых чисел от N до M, в порядке возрастания. ...

Генерация случайных целых чисел из заданного диапазона значений, чтобы получить заданную сумму
Генерация случайных целых чисел из заданного диапазона значений, чтобы получить заданную сумму....

Из множества целых чисел 1..100 выделить множество чисел, являющихся, в свою очередь, квадратами целых чисел.
помогите, я в множествах не силен Из множества целых чисел 1..100 выделить множество чисел,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru