2016-12-27 6 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 

Der obige Code tut nur für X2, aber ich will es bis X52 tun.Wenn Bedingung in Schleife

(Ex: Die nächste Prüfung in X3 = COMPLETE“Oder Range ("X3") = "ABGEBROCHEN" Dann Range ("X3".) Wählen Sie ActiveCell.FormulaR1C1 = "= GetOrderStatus (RC) [1]" und führen Sie die Aktion, neben X4 und so weiter

+0

haben Sie Sie bekam Rabatt-Code hier eine der Antworten versucht? –

Antwort

0

Verwendung Zeile/Spalte Nummerierung

x Spaltennummer 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

ich in Ihrem Beitrag denken Sie bestimmt Ihren Kriterien sein:

  1. Nicht Range ("X2") = "COMPLETE" >> kann auch mit Range ("X2") <> "COMPLETE"
  2. Nicht Range ("X2") = "ABGEBROCHEN" ersetzt werden >> kann auch mit Bereich ersetzt werden ("X2") <> "ABGEBROCHEN"

Hinweis: es ist besser, zu bleiben weg von Select und ActiveCell statt verweisen Range s verwenden. In Ihrem Code, den Sie direkt Range("X" & i).FormulaR1C1

-Code

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

Ich habe dieses versucht. Vielen Dank. Es funktioniert gut. – vaasusk

+0

@vaasusk die bitte als Antwort markieren (indem du auf das v neben meiner Antwort klickst –

+0

@vaasusk damit du weißt wie du "Antwort" markierst - du musst auf das kleine ** V ** neben meinem Post klicken Wenn Sie hier Hilfe bekommen möchten, sollten Sie versuchen, einige positive Rückmeldungen zu geben –

Verwandte Themen