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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2010, 17:50   #1
Sorro
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 17
По умолчанию Генерация уникальных кодов

Необходимо в файле генерировать и вести лог уникальных кодов, которые генерируются по определенному правилу:
xxxx-xxyy-zzzz-zzzz, где
хххххх -порядковый номер увеличивается на 1 с каждым новым кодом, начинается с 000001
yy - всегда 00
zzzzzzzz - случайное число, должно быть уникальным.

Не знаю как проверять на уникальность и соблюдать заданный формат.
Sorro вне форума Ответить с цитированием
Старый 28.02.2010, 19:09   #2
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

а Вам этот номер как число нужен? если как текст то вот)

не, над переделать


вообщем вот. два варианта накидал)
Вложения
Тип файла: rar Рандомный нумер.rar (15.1 Кб, 45 просмотров)

Последний раз редактировалось Dophin; 28.02.2010 в 19:25.
Dophin вне форума Ответить с цитированием
Старый 28.02.2010, 19:50   #3
Sorro
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 17
По умолчанию

О, Спасибо огромное! Это то что нужно!
А теперь пара вопросов, если можно)
Format(CDbl(Replace(Mid(t, 1, 7), "-", "")) + 1, "0000-00")
Как это работает?
И что значат два минуса в
r = --TEMP ?
Sorro вне форума Ответить с цитированием
Старый 28.02.2010, 19:55   #4
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

кстати замените CDbl на CLng ( в приложении поправлено)

1. берет первые 7 знаков из прошлой ячейки
2. убирает тире
3. преобразует в число (кстати можно и минусами как с TEMP преобразовать)
4. к числу прибавляет единицу
5 преобразует полученное число в текст в формате "0000-0000"

--Temp = преобразует текстовую строку в число.


а вообще проверку на уникальность с предыдущими числами я не сделал) попозже посмотрю


Вообщем вот, проверяйте.
Вложения
Тип файла: rar Рандомный нумер.rar (16.6 Кб, 42 просмотров)

Последний раз редактировалось Dophin; 28.02.2010 в 20:45.
Dophin вне форума Ответить с цитированием
Старый 28.02.2010, 21:16   #5
Sorro
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 17
По умолчанию

Спасибо, завтра буду экспериментировать с вашим кодом )
Sorro вне форума Ответить с цитированием
Старый 01.03.2010, 10:25   #6
Sorro
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 17
По умолчанию

Код:
Do While zztemp = False
        zzt = Round(Rnd() * 100000000, 0)
        zztemp = True
        For i = 2 To ilastrow
            If --Replace(Right(t, 9), "-", "") = zzt Then
                zztemp = False
            End If
        Next i
    Loop
Я так понимаю, в этом цикле сравнивается значение созданого рандомного значения и последних 9изнаков без "-" в последней ячейке. Там ведь должно быть i?
Sorro вне форума Ответить с цитированием
Старый 01.03.2010, 10:54   #7
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

совершенно верно. обшибся
Dophin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отбор уникальных значений Alex___ Microsoft Office Excel 11 18.08.2009 19:31
Сканер штрих кодов asale Microsoft Office Excel 7 30.11.2008 19:57
редактирование шаблонны кодов Nikolay 0001 Софт 4 31.07.2008 06:55