Страницы: 1
RSS
Генерация определенного количества номеров из разных диапазонов, Нужно сгенерировать определенное количество строк из разных диапазонов значений
 
Добрый день. Про генерацию читал много (и СЛУЧМЕЖДУ пользовался но неудобно)

Суть в следующем - есть определенный набор диапазонов. Он разный.
Надо сгенерировать определенное количество значений. Причем желательно иметь возможность менять количество нужных значений. Сегодня например 5000 а завтра надо 15000.
Пример с базой прилагаю.

Итог желательно получить просто в виде длинного списка телефонов
 
И что потом? Спам-рассылки?

В этой теме, как и в прошлой - получить и уйти без ответа?
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=8&TID=44137&TITLE_SEO=44137&MID=369428#message369428
 
Почему спам рассылки? Типо других мыслей не может быть?

В предыдущей теме несколько иная задача стояла.
И какой ответ я должен оставить?
 
О спаме - это первое, что подумалось. Есть желание - развейте сомнения.
В своих темах нужно отписываться. Подошло, не подошло... Просто выразить благодарность...
 
не спам. соц опросы проводим.
т.к. телефонных баз нет в доступе свободном то генерация случайных номеров с привязкой по def кодам
 
Генерировать строки с диапазонами номеров?
Диапазоны продолжают друг друга без "дырок" (последний номер первого + 1 - это начало второго)?
Емкость тоже случайным образом?
 
Нет , дыры есть и немалые.

первый диапазон может быть 555555-555999
а второй например 600000-900000

можно количество генерируемых номеров сделать статичным например 10 000 или 15 000
если сложно сделать ввод нужного количества.

К тому же встает вопрос а если диапазон всего 5 000 номеров то как сгенерировать 10 000

Может тогда проще сделать 1 диапазон. Допустим в ввожу начало и конец и сколько мне нужно сгенерить. Так может проще?
 
Без четких условий? Макросу нужно расолковать его задачу.
Дыры могут быть. Какие?

Цитата
если диапазон всего 5 000 номеров то как сгенерировать 10 000
В литровую банку налить 5 литров?
 
ок. переформулирую задачу.

условие: дано начало и конец диапазона. нужно сгенерировать вводимое количество случайных чисел.
 
wizard_vrn, оно ли?
Код
Sub aaa()
Dim r, v, b, e, n, c As Collection
[a:a].ClearContents
b = 10000000 'начало 
e = 99999999 'конец 
n = 500 'количество 
Set c = New Collection
On Error Resume Next
While c.Count < n
  v = Int(Rnd * (e - b + 1) + b)
  c.Add v, CStr(v)
  If Err = 0 Then r = r + 1: Cells(r, 1) = v
Wend
End Sub
 
Да, спасибо - отлично заработало. а можно сделать чтобы на самой странице вводить значения?
Просто отдать девочкам они в основном будут использовать :)

Просто в самом экселевском файле.
 
хм. попробовал формат 79601050000 по 79601080000.
почему то генерит только 154 номера.
 
Отбрасывайте одинаковое начало (хотя бы первые три цифры)
 
Цитата
wizard_vrn написал:
чтобы на самой странице вводить значения?
И где проблема?
Код
b =[b1] '10000000 'начало 
e =[b2] '99999999 'конец 
n =[b3] '500 'количество 
УПС
12-ю строку надо дополнить сбросом ашипки
Код
If Err = 0 Then r = r + 1: Cells(r, 1) = v Else Err.Clear
Изменено: Апострофф - 23.01.2018 12:16:32
 
Так нужен то в итоге список телефонов - если отбросить цыфры то не получится. потом надо будет к полученному результату прибавлять 3 цыфры.
Разве Эксель не может генерировать 11 значные числа?
 
wizard_vrn, исправьте
Цитата
Апострофф написал: 12-ю строку надо дополнить сбросом ашипки
11-значные проходят.
Изменено: Апострофф - 23.01.2018 12:25:03
 
Дополнил - вроде работает. Спасибо. простестирую пару дней.
 
wizard_vrn, обязательно проверку делайте
Код
if n<e-b then 'генерируем
иначе зависнете однажды.
 
13 строкой? или 7?
 
Код
Sub aaa()
Dim r, v, b, e, n, c As Collection
[a:a].ClearContents
b =[b1] '10000000 'начало 
e =[b2] '99999999 'конец 
n =[b3] '500 'количество 
if n<e-b then
Set c = New Collection
On Error Resume Next
While c.Count < n
  v = Int(Rnd * (e - b + 1) + b)
  c.Add v, CStr(v)
  If Err = 0 Then r = r + 1: Cells(r, 1) = v Else Err.Clear
Wend
endif
End Sub
Изменено: Апострофф - 23.01.2018 12:40:38
 
спасибо. пробую
Страницы: 1
Читают тему
Наверх