Генератор номера детали

Генератор номера детали

Я пытаюсь сделать генератор номеров деталей для большого проекта в школе. Мне нужна возможность использовать функцию =RANDBETWEEN(0,999999)для генерации части номера детали. Проблема в обновлении =RANDBETWEEN(0,999999). Если я ссылаюсь на ячейку, то все номера деталей в конечном итоге будут иметь одно и то же случайное число. Мне нужна функция, которая сохранит старое случайное число на месте, но сохранит возможность обновления для =RANDBETWEEN(0,999999)генерации нового номера для следующей детали. Я искал способ сделать это в течение 2 дней. Надеюсь, кто-то сможет помочь. У меня нет опыта работы с VBA, и я хотел бы сохранить это как функцию, чтобы ее могли использовать все пользователи команды.

решение1

Это не ответ.

Обратите внимание, что СЛЧИС(), СЛУЧМЕЖДУ() и все подобные функции будут генерировать новое число для каждого ПЕРЕСЧЕТА рабочего листа.

F9 или SHIFT+CTRL+F9 (в LibreOffice) запускает пересчет, который сделает проблему видимой для вас.

Также не будет никакой гарантии, что сгенерированные числа будут уникальными.


Ниже приведена функция, которая МОЖЕТ стать отправной точкой для макроса, запускаемого вручную или с клавиатуры, для установки в определенной ячейке шестизначного случайного числа с ведущими нулями.

НЕ ПРОВЕРЕНО (Excel недоступен, вероятно, есть как минимум одна или две ошибки)

функция rndNum(ячейка)
  rndNum=ФункцияРабочегоЛиста.СЛУЧМЕЖДУ(0,999999)
  если ячейка<>"" тогда
    Диапазон(ячейка).Значение="'" & ФункцияРабочегоЛиста.ТЕКСТ(rndNum,"000000")
  конец, если
конечная функция

решение2

Вы можете создать именованную функцию, скажем, EVALв именованном менеджере:

=LAMBDA(x,EVALUATE(x))

Теперь вы можете вызвать это на своем рабочем листе с помощью:

=EVAL("RANDBETWEEN(0,999999)")

Это создаст случайное число, которое изменится только тогда, когда вы повторно примените эту формулу в этой же ячейке.

Обратите внимание, что после сохранения ваша рабочая книга будет преобразована в xlsm, в противном случае вы потеряете названную функцию (случайные числа останутся на месте).

Связанный контент