2013-07-30 122 views
0

1)我有一個與我的FOR循環porblem。我去無限。這是我要求你幫忙的第一個問題。
2)第二個問題是,我不知道如何在「If」中添加多個條件
我的問題在代碼中作爲註釋。我的循環不會結束

Sub Repurchase_upload() 

Dim Worksheet As Worksheets 
startrow = Worksheets("GUTS").Cells(10, 1) 'Here I denote 1 
endrow = Worksheets("GUTS").Cells(11, 1) 'Here I denote 1000 
For x = startrow To endrow 

      If Cells(x, "A").Value <> "DU" Then 'I would like it to look like that: 'If Cells(x, "A").Value <> "DU" or "DR" or "EK" Then' but I don't know how to do this 'or' 
      Cells(x, "A").EntireRow.ClearContents 
      End If 'And here it won't end... 
    Next 
End Sub 

回答

1

的多個條件很容易實現:

For x = startrow To endrow 
    If Cells(x, "A").Value <> "DU" Or Cells(x, "A").Value <> "DR" Or Cells(x, "A").Value <> "EK" Then 
     Cells(x, "A").EntireRow.ClearContents 
    End If 
Next x 

對於無限循環,我不知道,似乎沒什麼問題......不是簡單的太慢?
也許你應該在撥打ClearContents千次之前關閉屏幕更新,例如:

Sub Repurchase_upload() 

    Application.ScreenUpdating = False 'Disable screen updating 

    Dim Worksheet As Worksheets 
    startrow = Worksheets("GUTS").Cells(10, 1) 'Here I denote 1 
    endrow = Worksheets("GUTS").Cells(11, 1) 'Here I denote 1000 
    For x = startrow To endrow 
     If Cells(x, "A").Value <> "DU" Or Cells(x, "A").Value <> "DR" Or Cells(x, "A").Value <> "EK" Then 
      Cells(x, "A").EntireRow.ClearContents 
     End If 
    Next x 

    Application.ScreenUpdating = True 'Re-enable screen updating 

End Sub 
2

做多值測試的另一種方法是使用select語句如下所示:

Sub Repurchase_upload() 

    Dim Worksheet As Worksheets 
    startrow = Worksheets("GUTS").Cells(10, 1) 'Here I denote 1 
    endrow = Worksheets("GUTS").Cells(11, 1) 'Here I denote 1000 
    For x = startrow To endrow 
     Select Case Cells(x, "A").Value 
     Case "DU", "DR", "EK" 
      'Do nothing 
     Case Else 
      Cells(x, "A").EntireRow.ClearContents 
     End Select 
    Next 
End Sub