2016-12-27 114 views
0
Sub NewRefesh() 
    If Not Range("X2") = "COMPLETE" Or Range("X2") = "CANCELLED" Then 
     Range("X2").Select 
     ActiveCell.FormulaR1C1 = "=GetOrderStatus(RC[1])" 
    End If 
End Sub 

上述代碼只爲X2,但我想要做到X52。如果條件爲for循環

(例如:在X3接着檢查=完全」或範圍( 「X3」)= 「取消」。然後 範圍( 「X3」。)選擇 ActiveCell.FormulaR1C1 = 「= GetOrderStatus(RC [1])」和做的動作,接下來X4等

+0

你嘗試任何你來到這裏的答案? –

回答

0

使用行/列編號

x是列號24

for i = 2 to 52 
If Not cells(i,24) = "COMPLETE" Or cells(i,24) = "CANCELLED" Then 
     Range(i,24).Select 
     Whatever you want done......... 
    End If 
Next i 
1

我想在您的文章你的意思是你的標準是:

  1. 未範圍( 「X2」)= 「COMPLETE」 >>也可以替換爲範圍( 「X2」)<> 「COMPLETE」
  2. 未範圍( 「X2」)= 「取消」 >>可以用範圍( 「X2」)<也換成> 「取消」

注意:這是更好地從SelectActiveCell望而卻步,轉而使用引用Range秒。在你的代碼的代碼直接使用Range("X" & i).FormulaR1C1

代碼

Option Explicit 

Sub NewRefesh() 

    Dim i As Long 

    ' simple For loop, you can modify to find last row with data instead of 52 
    For i = 2 To 52 
     If (Not Range("X" & i).Value = "COMPLETE") And (Not Range("X" & i).Value = "CANCELLED") Then 
      Range("X" & i).FormulaR1C1 = "=GetOrderStatus(RC[1])" 
     End If 
    Next i 


End Sub 
+0

我試過這個。謝謝。它工作正常。 – vaasusk

+0

@vaasusk請標記爲答案(通過點擊我的回答 –

+0

@vaasusk旁邊的v,所以你知道如何標記爲「答案」 - 你需要點擊我帖子旁邊的小** V **。如果你想要在這裏得到幫助,你應該嘗試給出一些積極的反饋 –