返回列表 上一主題 發帖

[發問] 自動往前遞補排程序號

[發問] 自動往前遞補排程序號

請教各位 如何往前遞補排程序號

需求示意:


20230630.zip (7.46 KB)
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

本帖最後由 Andy2483 於 2023-7-4 07:33 編輯

回復 2# shuo1125


    謝謝前輩
方案情境略有不同,極具情境需求者參考價值,方案執行結果如下:

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

TOP

回復 4# 准提部林


    謝謝論壇,謝謝前輩指導
以下學習心得註解,請前輩再指導

Sub TEST_1()
Dim xR As Range, T$(2), S$(2), N%
'↑宣告變數:xR變數是 儲存格變數,(T,S)變數是0~2索引號的字串一維陣列,N是短整數
For Each xR In Range([a2], [a65536].End(3))
'↑設迴圈!令xR是 [A2]到A欄最後有內容儲存格範圍之一儲存格
    T(1) = xR: T(2) = xR(1, 2)
    '↑令T陣列1索引號陣列值是xR
    '↑令T陣列2索引號陣列值是xR右1格儲存格值

    If T(1) <> S(1) Then S(1) = T(1): S(2) = "\\": N = 0
    '↑如果T陣列1索引號陣列值與 S陣列1索引號陣列值不同?
    '↑True就令S陣列2索引號陣列值是 "\\"
    '↑令N變數歸零

    N = N - (T(2) <> S(2))
    '↑令N變數於((T陣列2索引號陣列值<> T陣列2索引號陣列值)邏輯值True)時,
    '累加1 註: -(TRUE) = -(-1) = +1

    S(2) = T(2)
    '↑令S陣列2索引號陣列值是 T陣列2索引號陣列值
    xR(1, 3) = N
    '↑令xR右2格儲存格值是 N變數
Next
End Sub

Sub TEST_2()
Dim xR As Range, T$, TT$, S$, SS$, N%
'↑宣告變數:xR變數是 儲存格變數,(T,TT,S,SS)變數是字串變數,N是短整數
For Each xR In Range([a2], [a65536].End(3))
'↑設迴圈!令xR是 A欄儲存格之一
    T = xR: TT = T & "\" & xR(1, 2)
    '↑令T這字串變數是 xR變數值
    '↑令TT這字串變數是 T變數連接"\",再連接xR右1格儲存格值組成的新字串

    N = N * -(T = S) - (TT <> SS)
    '↑令N這短整數變數是 自身乘邏輯值後,再判斷邏輯值True時,累加1
    '1.當 T(機台)<>S(前機台) 時 N * -(T = S)會N*-(0) = N*0 = 0,
    '否則 N*-(-1) = N*1 = N
    '2.當 機台\序號<>前機台\前序號 時,-(TT <> SS) = -(-1) = 1
    '否則 -(TT <> SS) = -(0) = 0
    '3.迴圈一開始的S變數與SS變數都是"",所以(T=S) = FALSE = 0,
    '-(TT <> SS) = -(TRUE) = 1

    S = T: SS = TT
    '↑令S變數值是 T變數值(這是要記住當下機台給下一迴圈比較)
    '↑令SS變數值是 TT變數值(這是要記住組合字串給下一迴圈比較)

    xR(1, 3) = N
    '↑令xR右2格儲存格值是 N變數
Next
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 愛不是要求對方,而是要由自身的付出。
返回列表 上一主題