2016-12-27 2 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.Если условие для цикла

(Ex: Следующая проверка в Х3 = ПОЛНЫЙ»или Range ("X3") = "ОТМЕНА" Тогда Range ("X3".) Выберите ActiveCell.FormulaR1C1 = "= GetOrderStatus (RC [1])" и делать действия, следующий Х4 и так далее

+0

вы пробовали какой-либо из ответов вы попали сюда? –

ответ

0

нумерации использование строк/цв

х номер колонки 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. Не Range ("X2") = "COMPLETE" >> можно заменить также с Range ("X2") <> "COMPLETE"
  2. Не Range ("X2") = "ОТМЕНА" >> можно заменить также с Range («X2») <> «ОТМЕНА»

Примечание: лучше держаться подальше от Select и ActiveCell, вместо того, чтобы использовать ссылки 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, пожалуйста, отметьте как ответ (нажав v рядом с моим ответом –

+0

@vaasusk, чтобы вы знали, как отмечать как «Ответ» - вам нужно щелкнуть по маленькому ** V ** рядом с моим сообщением. хочу продолжать получать помощь здесь, вы должны попытаться дать некоторые положительные отзывы –

Смежные вопросы