- 帖子
- 1447
- 主題
- 40
- 精華
- 0
- 積分
- 1471
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Excel 2010 & 2016
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2020-7-15
- 最後登錄
- 2025-5-5
|
6#
發表於 2023-11-8 08:04
| 只看該作者
回復 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 |
|