- 帖子
- 354
- 主題
- 5
- 精華
- 0
- 積分
- 387
- 點名
- 0
- 作業系統
- windows7
- 軟體版本
- vba,vb,excel2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2017-1-8
- 最後登錄
- 2024-8-2
 
|
20#
發表於 2021-7-25 21:22
| 只看該作者
本帖最後由 singo1232001 於 2021-7-25 21:34 編輯
回復 n7822123
測試成功
謝謝您的幫忙和指導~感恩
不好意思,請教一下 :
列 ...
ziv976688 發表於 2021-7-25 19:45 
不好意思,請教一下 :
列8
For Each Num In Split(Arr(2)(R, C), ",")
餘數 = (Arr(1)(R, C) + Num - 1) Mod 49 + 1
請問 :
Num是指填入控制箱的期距數 Num = "25" 嗎?
還是只是變數 ?
謝謝您
'------------------------------------------
幫忙解讀一下
這段是縮寫
需要先拆分
並且先從split的基礎運用方式 先學
x=Split(Arr(2)(R, C), ",")
要先了解這段的意思
就必須先了解
Arr(2)(R, C)
又是甚麼意思
Arr(1) 跟arr(2)
你就想像成 兩個虛擬的工作表 (實際名稱 "陣列")
所以
Arr(2)(R,C)
就代表在第二張虛擬工作表的 某個儲存格因為有R列C欄值
因為在陣列中 處理速度比較快 也比較單純
依照準2進3工作表[V2]匯入當前Arr(2)虛擬工作表的位置
最終 就能取得一組字串 比如 "8,27"
位置應該是Arr(2)陣列的(0,0)
那麼我們回到
x=Split(Arr(2)(R, C), ",")
意思就是
x=Split("8,27", ",")
這是一種你給他分隔值 她就幫你依照分隔值 切分的函數 並且會個別存放
如上的意思
我將8,27 依照","符號 切分
最後我會得到
8 與27兩個值
分別放在
x(0) <-裡面是8
x(1) <-裡面是27
的裏面
如果你給他的字串是5,4,3,2
那麼你就會得到
x(0) <-裡面是5
x(1) <-裡面是4
x(2) <-裡面是3
x(3) <-裡面是2
如上述 如果想要取得x(1)資料
我們就可以
y=x(1)
那麼y的值就是4
接著講
迴圈分兩種
for i = 1 to 4 這代表這回圈是 1 2 3 4
另一種是
for each a In x
這概念不同的地方很簡單
假設 現在面前有40個大頭兵 他們是A班
第一種就是 你說1號 他出來1號
而且 你必須確認裡面有多少人 才不會漏報 或者多報
第二種則是 你說 A班報數
這種方式 就不用知道這班有多少人存在
也就是 就從當前的順位第一個 到最後一個 一個一個自己站出來
這樣我們就能了解第一段
For Each Num In Split("8,27", ",")
我們要裡面的 8,27 輪流站進去Num裡面
方便我們後續使用
當8進去Num之後
餘數 = (Arr(1)(R, C) + Num - 1) Mod 49 + 1
我們繼續執行上面這段
Arr(1)(R,C) 是工作表上M2的位置 也就是11
最後就變成
餘數 = (11+8-1) mod 49 +1
最後答案
餘數= 18+1
然後 在進行下一個 27站出來
餘數 = (11+27-1) mod 49 +1
餘數= 38
最後再把 19跟38結合一起
就會變成
19,38 |
|