Board logo

標題: [發問] for next [打印本頁]

作者: t8899    時間: 2021-3-28 16:17     標題: for next

For k = 70 To 4
next
我想加個條件變成 k= 4 to 70也就是下面二選一
For k = 70 To 4
for  k= 4 to 70
----------------
For k = 70 To 4 step -1
next
for  k= 4 to 70
next
因為 我的 for next  裡面還有很多程式碼
如果改成上面會比較複雜,不容易看
不知有無較簡單的改法??

下面的改法
錯誤訊息 有else 郤沒有 IF
If Range("j16") = 1 Then
For k = 70 To 4
Else
For k = 4 To 70
End If
next
作者: reangame    時間: 2021-3-28 16:36

  1. If Range("j16") = 1 Then
  2. For k = 70 To 4
  3. 程式碼
  4. next k
  5. Else
  6. For k = 4 To 70
  7. 程式碼
  8. next k
  9. End If
複製代碼
請參考看看!
作者: reangame    時間: 2021-3-28 16:40

回復 1# t8899

也可以改用 select case
  1. Dim Number
  2. Number = 8    ' 設定變數初值。
  3. Select Case Number    ' 判斷 Number 的值。
  4. Case 1 To 5    ' Number 的值在 1 到 5 之間,是非排它性的。
  5.     Debug.Print "Between 1 and 5"
  6. ' 下一個 Case 子句是本範例中唯一判斷值為 True 的子句。
  7. Case 6, 7, 8    ' Number 的值在 6 到 8 之間。
  8.     Debug.Print "Between 6 and 8"
  9. Case 9 To 10    ' Number 的值為 9 或 10。
  10. Debug.Print "Greater than 8"
  11. Case Else    ' 其它數值。
  12.     Debug.Print "Not between 1 and 10"
  13. End Select
複製代碼

作者: 准提部林    時間: 2021-3-29 11:38

r1 = 4: r2 = 70: p = 1
If Range("j16") = 1 Then r1 = 70: r2 = 4: p = -1
For k = r1 To r2 Step p
    N = N + p
Next k
作者: n7822123    時間: 2021-6-8 13:37

本帖最後由 n7822123 於 2021-6-8 13:50 編輯

回復 1# t8899


For k = 70 To 4 step -1
next
for  k= 4 to 70
next
因為 我的 for next  裡面還有很多程式碼
如果改成上面會比較複雜,不容易看
不知有無較簡單的改法??

也可以用置換變數的方式,把迴圈內的k都改k1
不過判斷在迴圈內,效率較差,只是提供另一個寫法讓大家參考而已


for  k= 4 to 70
If 條件 then k1=74-k else k1=k
Cells(k1,5)=""  '範例
其他程式碼
next





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