返回列表 上一主題 發帖

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

回復 5# ikboy


    化碼基本上是追蹤對上一次的號碼,在没有的情調下從1開始,若一定在没有對上一次的號碼,要用指定的號碼,可以在 13 行 else 後面的 i 做修改。

TOP

回復 11# ikboy

感謝 ikboy 的說明

針對第一筆面額100流水號由 A0064565起始  =ZZ(B3,C3)

說明 13 行 else 後面的 i 做修改...       
If n Then i = Mid(b(n, 1), Application.Find(x, b(n, 1), 2) + 1) Else i = 64564

提問第二筆面額200流水號由 B0081141起始 ,該數據需在何處修改?

TOP

回復 10# samwang

非常感謝  samwang  指導

上面公式若是 B19 B20 儲存格無數據執行巨集公式答案正常顯示!!

現因 B19 B20 儲存格有相關面額數據(100  200)  如7樓圖
2112101223b54d981f156a5d0a.jpg.thumb.jpg
2021-12-10 23:01


導致上述公式無法正常產生流水編號…該如何修正??感謝

TOP

回復 13# cypd

現因 B19 B20 儲存格有相關面額數據(100  200)  如7樓圖
>>請測試看看,謝謝
Sub test()
Dim Arr, xD, Brr, T, T1, TT$, ck%, ck1%, i&
Set xD = CreateObject("Scripting.Dictionary")
With Range([D2], [B65536].End(3)-2)
    Brr = .Value
    .Sort Key1:=.Item(1), Order1:=1, Header:=1
    ...
    ...

TOP

=REPLACE(TEXT(MMULT((IF(B3=100,64564,81140)+SUMIF(B$2:B2,B3,C$2:C2)+C3^{0,1}),10^{7;0}),REPT(IF(B3=100,"A","B")&"0000000",2)),9,,"-")

TOP

回復 14# samwang

不好意思!針對所述問題

依閣下指導公式修改之後執行產生錯誤如下
13.jpg
2021-12-13 03:09

錯誤訊息
131.jpg
2021-12-13 03:10


附上檔案供參...

依據面額不同所需張數自動產生流水編號_1213.rar (24.96 KB)

TOP

回復 15# 准提部林

非常感謝  准提部林  指導

將所述公式函數代入面額 100 之流水編號全不正常顯示所需結果

面額  500 之儲存格出現 #VALUE!  之問題

132.jpg
2021-12-13 03:21


附上問題檔案供參

1101213.rar (18.54 KB)

TOP

回復 16# cypd
依閣下指導公式修改之後執行產生錯誤如下
>> 請再測試看看,謝謝
Sub test()
Dim Arr, xD, Brr, T, T1, TT$, ck%, ck1%, i&
Set xD = CreateObject("Scripting.Dictionary")
With Range("b2:d" & [B65536].End(3).Row - 2)
    Brr = .Value
    .Sort Key1:=.Item(1), Order1:=1, Header:=1
    Arr = .Value
    For i = 2 To UBound(Arr)
        TT = Arr(i, 1) & "|" & Arr(i, 2)
        If Arr(i, 1) = 100 Then
            If ck = 0 Then
                T = 64565
                Arr(i, 3) = "A00" & T & "-" & Format(T + Arr(i, 2) - 1, "A0000000")
                ck = 1: T1 = T + Arr(i, 2): xD(TT) = Arr(i, 3)
            Else
                Arr(i, 3) = "A00" & T1 & "-" & Format(T1 + Arr(i, 2) - 1, "A0000000")
                T1 = T1 + Arr(i, 2): xD(TT) = Arr(i, 3)
            End If
        Else
            If ck1 = 0 Then
                T = 81141
                Arr(i, 3) = "B00" & T & "-" & Format(T + Arr(i, 2) - 1, "B0000000")
                ck1 = 1: T1 = T + Arr(i, 2): xD(TT) = Arr(i, 3)
            Else
                Arr(i, 3) = "B00" & T1 & "-" & Format(T1 + Arr(i, 2) - 1, "B0000000")
                T1 = T1 + Arr(i, 2): xD(TT) = Arr(i, 3)
            End If
        End If
    Next
    For i = 2 To UBound(Brr): TT = Brr(i, 1) & "|" & Brr(i, 2): Brr(i, 3) = xD(TT): Next
    .Value = Brr
End With
End Sub

TOP

回復 16# cypd

18#除了更新列數問題,因為你的B欄除了500元有時又會有200元問題(代碼都是共用B開頭),也有更新此問題,謝謝

TOP

回復 17# cypd


不知道是否檔案格式問題,
我這邊重新下拉公式, 或C3重新輸入, 都可以正常!!!

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題