返回列表 上一主題 發帖

[發問] 依據面額不同所需張數自動產生流水編號

[發問] 依據面額不同所需張數自動產生流水編號

依據面額不同所需張數自動產生流水編號
希望結果:


C 欄輸入張數...面額100 編號由 A0064565起算
D欄能自動產生所需張數編號  A0064565~A0066053

面額500 編號由 B0081141起算
D欄能自動產生所需張數編號  B0081141~B0084118

請問D欄能自動產生所需張數編號公式如何設定...

1209.rar (6.9 KB)

回復 46# Andy2483

感謝前輩  Andy2483 熱心回復... ^^

1.針對.程式碼裡有關於保護工作表的程序,被單引號 ‘ 變為註解…有點深奧呢

2.另前輩的構思還可以用於各店各廠的取號適用範圍值得取鏡…推

TOP

本帖最後由 Andy2483 於 2023-11-18 07:50 編輯

回復 45# cypd
謝謝前前輩回覆
1.程式碼裡有關於保護工作表的程序,被單引號 ‘ 變為註解了,請前輩試試看

2. 用在紙鈔流水號太侷限,應該還可以用於各店各廠的取號唯一性
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 44# Andy2483

感謝前輩  Andy2483 提供不同思維練習檔...讚啦 ^^

可單次使用流水編號記錄
或是希望能累計上次記錄之後繼續沿用的構思均可

另有一事不解的是
使用該檔時一定要取消保護工作表方可執行...(不能在保護工作表狀態下執行?)

TOP

回復 43# cypd


    謝謝前輩
以下是另一種思維方案練習,請前輩再指教
可單次使用或 累計資料

1121115++_20231117.zip (23.01 KB)
執行結果:
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 42# Andy2483

感謝前輩  Andy2483 提供相關練習檔...水啦 ^^

測試結果非常 Nice...

若此流水編號檔在插入多列使用時...
希望在合計面額張數統計公式
能在插入多列行時公式能隨增加之範圍自動修正...

TOP

本帖最後由 Andy2483 於 2023-11-16 09:25 編輯

回復 41# cypd


謝謝前輩
1.清除流水號才能新增
2.工作表作保護 (0000)
練習修改方案如下:
1121115++_20231116.zip (17.82 KB)

執行結果:
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

本帖最後由 cypd 於 2023-11-15 22:40 編輯

回復 40# Andy2483

非常感謝  Andy2483 提供不同的構思...讚啦 ^^
經實際測試檔案有以下建議

1.截止編號儲存格修正為起始編號...如從 0000001(第一張編號起算)...H5可顯示為截止編號...
2.D3儲存格流水編號從 A0000002-起顯示...錯失第一張流水編號無法使用問題
3.另外可刪除 N 欄 5000 面額 ...



1121115++.rar (14.88 KB)

TOP

回復 39# cypd


    謝謝論壇,謝謝前輩指導
後學藉此帖練習修改新方案,學習到很多知識,請前輩再指導

20231115+_20231115.zip (15.48 KB)

執行前:


執行3次:



Option Explicit
Sub TEST_1()
Dim Brr, Z, C, A(2), P1&, P2&, Q%, i&, j%, V&, F$, T$, Ts$, Te$, R&, U%
Set Z = CreateObject("Scripting.Dictionary")
U = [IV2].End(xlToLeft).Column: Brr = Range(Cells(2, U), [H65536].End(3)(1, 2))
For j = 1 To UBound(Brr, 2): Z(Val(Brr(1, j))) = Val(Brr(UBound(Brr), j)): Next
For j = 0 To UBound(Z.KEYS()): Z(Z.KEYS()(j) & "") = Brr(2, j + 1): Next
R = UBound(Brr): C = Application.Match("合計", [A:A], 0)
If IsError(C) Then Exit Sub Else F = Application.Rept("0", 7)
Brr = [B3].Resize(C - 3, 3)
For i = 1 To UBound(Brr)
   P1 = Val(Brr(i, 1)): P2 = Val(Brr(i, 2)): Brr(i, 1) = ""
   If P1 * P2 = 0 Then GoTo i01
   V = Z(P1): T = Z(P1 & ""): If V = 0 Then GoTo i01
   Ts = T & Format((V + 1), F)
   V = V + Brr(i, 2): Z(P1) = V
   Te = T & Format((V), F)
   Brr(i, 1) = Ts & "-" & Te
i01: Next
[D3].Resize(UBound(Brr)) = Brr
Cells(R + 2, "I").Resize(1, U - 8) = Z.ITEMS: Cells(R + 2, "I").Item(1, 0) = Now
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 38# Andy2483

再感謝  Andy2483 熱心提供的詳細VBA...
1.新增 J2:L6 面額相關流水編號資訊(希望以此資訊欄位數據為主)
2.面額張數有 0 出現之情形...
3.面額幣值部分 A(0) = [{1,2,5,10}]…Q = A(0)(i) * 100: Z(Q) = A(1)(i): Z(Q & "") = A(2)(i)
  不解為何是 [{1,2,5,10}]…Q = A(0)(i) * 100 的方式?不是直接以 100 200 500 1000…方式呈現



20231115+.rar (13.5 KB)

TOP

        靜思自在 : 脾氣嘴巴不好,心地再好也不能算是好人。
返回列表 上一主題