Board logo

標題: vba loop 一問 [打印本頁]

作者: drgv11    時間: 2016-5-5 12:18     標題: vba loop 一問

[attach]24173[/attach]

想 更改cell (C,9) 的數值
直至 cell (C,30)的數值 等於 cell (C,31)的數值
請問應該如何編寫?
謝謝
作者: luhpro    時間: 2016-5-6 23:16

本帖最後由 luhpro 於 2016-5-6 23:19 編輯
想 更改cell (C,9) 的數值
直至 cell (C,30)的數值 等於 cell (C,31)的數值
請問應該如何編寫?
謝謝
drgv11 發表於 2016-5-5 12:18

Wile [C30] <>[ C31]
  變更 {C9] 內容的指令 (特別留意, 必須能達成 [C30] =[ C31], 否則會造成無窮迴圈 -> 程式當掉, 萬一發生可嘗試按 ESC 按鍵看是否能取回控制權)
Wend

若為防止造成無窮迴圈,
可以改為 :

Wile [C30] < [C31]
...

或是

i=1
Do Wile [C30] <>[ C31]
  變更 {C9] 內容的指令
  i=i+1
  if i > 100 Then Exit Do ' 若執行超過 100 次則退出迴圈
Loop

皆可.
作者: drgv11    時間: 2016-5-7 09:49

回復 2# luhpro

謝謝
如果我實際情形是這樣的
http://forum.twbts.com/viewthread.php?tid=17350&extra=

應該如果編寫
作者: luhpro    時間: 2016-5-7 23:41

回復 3# drgv11
那你就用執行次數來限制迴圈不讓它變成無限囉.

其實一個程式寫出來後,
剛開始時最好能用單步模式確認每一步驟的結果符合我們的預期,
若否則應調整程式,
直到我們確認不會發生非可預期的錯誤後再按 F5 完整執行下去.
作者: Scott090    時間: 2016-5-8 13:17

回復 1# drgv11


    建議把檔案 PO 出來可能會較容易找到答案




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)