零件編號生成器

零件編號生成器

我正在嘗試為學校的一個大型專案製作零件編號產生器。我需要能夠使用該函數=RANDBETWEEN(0,999999)產生零件號碼的一部分。問題是 的更新=RANDBETWEEN(0,999999)。如果我引用該單元格,那麼所有零件號碼最終都將具有相同的隨機數。我需要一個函數來保存舊的隨機數,但保留更新的能力=RANDBETWEEN(0,999999),為下一部分產生新的數字。我已經尋找了兩天的方法來做到這一點。希望有人能幫忙。我沒有使用 VBA 的經驗,希望將其保留為函數,以便團隊的所有使用者都可以使用它。

答案1

不是答案。

請注意,RAND()、RANDBETWEEN() 和所有類似函數將為工作表的每次重新計算產生新數字。

F9 或 SHIFT+CTRL+F9(在 LibreOffice 中)啟動重新計算,這將使您看到問題。

也不能保證產生的數字是唯一的。


下面的函數可能是手動或鍵盤啟動巨集的起點,用於將某個儲存格設定為帶有前導零的六位隨機數。

未經測試(沒有可用的 Excel,可能至少有一兩個錯誤)

函數 rndNum(單元格)
  rndNum=WorksheetFunction.RANDBETWEEN(0,999999)
  如果單元格<>"" 那麼
    範圍(單元格).Value =“'”&WorksheetFunction.TEXT(rndNum,“000000”)
  萬一
結束函數

答案2

您可以建立一個命名函數,例如EVAL在命名管理器中:

=LAMBDA(x,EVALUATE(x))

現在您可以透過以下方式在工作表中呼叫它:

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

這將建立一個隨機數,僅當您在該確切儲存格中重新套用該公式時,該隨機數才會變更。

請注意,這將在儲存時觸發您的工作簿為 xlsm,否則您將失去指定的函數(隨機數字將保留在原處)。

相關內容