Board logo

標題: [發問] 新手請教為何我刪除列都會留一列 [打印本頁]

作者: hu0318s    時間: 2013-9-10 22:37     標題: 新手請教為何我刪除列都會留一列

小第剛學VBA 昨天學到用DELETE(3)可以刪除列就學用但都會留一列無法刪除我指定的
Sub xusre()

Dim i As Integer
For i = 2 To 500
If Cells(i, 3).Value = "全數下架" Then
    Cells(i, 3).delete (3)

End If
Next i
End Sub
為何我執行後都會留一行沒刪除 [attach]16015[/attach]
我新手但我會努力學習的
作者: kimbal    時間: 2013-9-10 22:42

小第剛學VBA 昨天學到用DELETE(3)可以刪除列就學用但都會留一列無法刪除我指定的
Sub xusre()

Dim i  ...
hu0318s 發表於 2013-9-10 22:37


刪東西的話通常倒數會比較方便
  1. Sub xusre()

  2. Dim i As Integer
  3. For i = 500 To 2 Step -1
  4. If Cells(i, 3).Value = "全數下架" Then
  5.     Cells(i, 3).delete (3)

  6. End If
  7. Next i
  8. End Sub
複製代碼

作者: hu0318s    時間: 2013-9-10 22:59

謝謝大大 可以用那我可以請問一下Step -1不太了解它的用意
作者: sunnyso    時間: 2013-9-11 00:17

499 =500-1
step =-1

3=2+1
step =1
作者: GBKEE    時間: 2013-9-11 06:44

回復 3# hu0318s
  1. Option Explicit
  2. Sub Ex()
  3.     Dim i As Integer
  4.     For i = 1 To 50      '=>Step 1
  5.         Debug.Print i
  6.     Next
  7.     For i = 1 To 50 Step 5     '正 i 由小往大
  8.         Debug.Print i
  9.     Next
  10.     For i = 50 To 1 Step -5    '負 i 由大往小
  11.         Debug.Print i
  12.     Next
  13. End Sub
複製代碼

作者: handsometrowa    時間: 2013-9-11 10:06

回復 3# hu0318s


    http://forum.twbts.com/redirect.php?goto=findpost&ptid=10411&pid=58362&fromuid=12328

回復5# G大的意思

你用迴圈的時候,Step 就是 步數的意思

假設你從小到大 以1 TO 10 來講

Step 1 就是  1  2   3  4 5 6  7 8 9 10  (每次跨一步)

Step2  就是 1  3  5  7  9  (每次跨兩步)

那你從大到小   以10 TO 1

Step -1 就是 10  9  8   7  6  5  4   3  2   1  

Step -2 就是 10  8  6  4  2  

這樣子 分解動作應該比較了解。
作者: hu0318s    時間: 2013-9-11 19:28

謝謝大家的解釋我了解拉 愛死你們大家拉 謝謝




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