2017-01-25 4 views
-1

現在、次のコードを使用する必要があるものに取り組んでいます。ちょうどそれを縮めたり、それを組み合わせたりするためにとにかくあるかどうか疑問に思う。どんな助けも素晴らしいだろう。そして数日前に非常に多くの質問を投稿して謝罪します。VBAはこのコードを最適化するためにとにかくありますか?

Sub RoutingCheck() 


    Dim i As Long, c1 As Range, c2 As Range, c3 As Range, c4 As Range 

    For i = 2 To 456 
     Set c3 = Range("C" & i) 
     Set c4 = Range("D" & i) 

If c3.Value <> 1 Or c3.Value <> 2 Or c3.Value <> 3 Or c3.Value <> 4 Or c3.Value <> 5 Or c3.Value <> 6 Or c3.Value <> 98 Then c3.Interior.color = vbRed 
If c3.Value = 1 Or c3.Value = 2 Or c3.Value = 3 Or c3.Value = 4 Or c3.Value = 5 Or c3.Value = 6 Or c3.Value = 98 Then c3.Interior.color = vbGreen 


End If 
Next i 

End Sub 
+1

の可能な複製を(http://stackoverflow.com/questions/41824236/excel -if- statement-shorten-down) – R3uK

+0

ほぼ同じ質問で、あなたはそこで答えるのを止めて答えを受け入れなかった...そして、提案された 'Select Case'の情報を探すようには思われないそこに...ちょっと言って... – R3uK

+0

お詫び申し上げます、私は 'Select Case'コマンドが別の列も見ていれば有効だと思っていました。私の悪い。私は本当にそれを感謝するが、ヒントをありがとう。ちょうど学ぶことを試みる。 – Hosey93

答えて

1

Select Caseがすべてに約あるまさに、以下のコード試してください:[?文がダウン短くする場合はエクセル]

Sub RoutingCheck() 

Dim i As Long, c1 As Range, c2 As Range, c3 As Range, c4 As Range 

For i = 2 To 456 
    Set c3 = Range("C" & i) 
    Set c4 = Range("D" & i) 

    Select Case c3.Value 
     Case 1 To 6 
      c3.Interior.Color = vbGreen 
     Case Else 
      c3.Interior.Color = vbRed 
    End Select 

Next i 

End Sub 
+0

素晴らしい、素晴らしい作品です。私は 'select case'コマンドを使ってみましたが、今は正しく動作しているに違いありません。 – Hosey93

+0

私はそれが受け入れられたとマークしたと思います、ここだけ新しいです。 – Hosey93

+0

@ Hosey93ありがとうございます:) –

関連する問題