Excel如果语句缩短?

我有VBA代码写入颜色的单元格基于什么值在不同的单元格。 是否有可能缩短以下? 我不熟悉VBA的脚本,希望如果这个可以缩短,那么我可以把它应用到一个更大的文件。

Sub RoutingCheck() Dim I As Long, r1 As Range, r2 As Range For I = 2 To 456 Set r1 = Range("A" & I) Set r2 = Range("B" & I) If r1.Value = 94 And r2.Value = " " Then r1.Interior.Color = vbRed If r1.Value = 94 And r2.Value = "" Then r1.Interior.Color = vbRed If r1.Value = 94 And r2.Value = -99 Then r1.Interior.Color = vbRed If r1.Value = 94 And r2.Value = -66 Then r1.Interior.Color = vbRed If r1.Value = 94 And r2.Value = -77 Then r1.Interior.Color = vbRed If r1.Value = 94 And r2.Value = " " Then r2.Interior.Color = vbRed If r1.Value = 94 And r2.Value = "" Then r2.Interior.Color = vbRed If r1.Value = 94 And r2.Value = -99 Then r2.Interior.Color = vbRed If r1.Value = 94 And r2.Value = -66 Then r2.Interior.Color = vbRed If r1.Value = 94 And r2.Value = -77 Then r2.Interior.Color = vbRed If r1.Value = 94 And r2.Value <> "" And r2.Value <> -99 And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> " " Then r1.Interior.Color = vbGreen If r1.Value = 94 And r2.Value <> "" And r2.Value <> -99 And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> " " Then r2.Interior.Color = vbGreen If r1.Value = 1 And r2.Value = "" Then r1.Interior.Color = vbRed If r1.Value = 1 And r2.Value = -66 Then r1.Interior.Color = vbRed If r1.Value = 1 And r2.Value = 0 Then r1.Interior.Color = vbRed If r1.Value = 1 And r2.Value = -77 Then r1.Interior.Color = vbRed If r1.Value = 1 And r2.Value = "" Then r2.Interior.Color = vbRed If r1.Value = 1 And r2.Value = -66 Then r2.Interior.Color = vbRed If r1.Value = 1 And r2.Value = 0 Then r2.Interior.Color = vbRed If r1.Value = 1 And r2.Value = -77 Then r2.Interior.Color = vbRed If r1.Value = 1 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r1.Interior.Color = vbRed If r1.Value = 1 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r2.Interior.Color = vbRed If r1.Value = 1 And r2.Value = -99 Then r1.Interior.Color = vbGreen If r1.Value = 1 And r2.Value = -99 Then r2.Interior.Color = vbGreen If r1.Value = 2 And r2.Value = "" Then r1.Interior.Color = vbRed If r1.Value = 2 And r2.Value = -66 Then r1.Interior.Color = vbRed If r1.Value = 2 And r2.Value = 0 Then r1.Interior.Color = vbRed If r1.Value = 2 And r2.Value = -77 Then r1.Interior.Color = vbRed If r1.Value = 2 And r2.Value = "" Then r2.Interior.Color = vbRed If r1.Value = 2 And r2.Value = -66 Then r2.Interior.Color = vbRed If r1.Value = 2 And r2.Value = 0 Then r2.Interior.Color = vbRed If r1.Value = 2 And r2.Value = -77 Then r2.Interior.Color = vbRed If r1.Value = 2 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r1.Interior.Color = vbRed If r1.Value = 2 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r2.Interior.Color = vbRed If r1.Value = 2 And r2.Value = -99 Then r1.Interior.Color = vbGreen If r1.Value = 2 And r2.Value = -99 Then r2.Interior.Color = vbGreen If r1.Value = 3 And r2.Value = "" Then r1.Interior.Color = vbRed If r1.Value = 3 And r2.Value = -66 Then r1.Interior.Color = vbRed If r1.Value = 3 And r2.Value = 0 Then r1.Interior.Color = vbRed If r1.Value = 3 And r2.Value = -77 Then r1.Interior.Color = vbRed If r1.Value = 3 And r2.Value = "" Then r2.Interior.Color = vbRed If r1.Value = 3 And r2.Value = -66 Then r2.Interior.Color = vbRed If r1.Value = 3 And r2.Value = 0 Then r2.Interior.Color = vbRed If r1.Value = 3 And r2.Value = -77 Then r2.Interior.Color = vbRed If r1.Value = 3 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r1.Interior.Color = vbRed If r1.Value = 3 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r2.Interior.Color = vbRed If r1.Value = 3 And r2.Value = -99 Then r1.Interior.Color = vbGreen If r1.Value = 3 And r2.Value = -99 Then r2.Interior.Color = vbGreen If r1.Value = 4 And r2.Value = "" Then r1.Interior.Color = vbRed If r1.Value = 4 And r2.Value = -66 Then r1.Interior.Color = vbRed If r1.Value = 4 And r2.Value = 0 Then r1.Interior.Color = vbRed If r1.Value = 4 And r2.Value = -77 Then r1.Interior.Color = vbRed If r1.Value = 4 And r2.Value = "" Then r2.Interior.Color = vbRed If r1.Value = 4 And r2.Value = -66 Then r2.Interior.Color = vbRed If r1.Value = 4 And r2.Value = 0 Then r2.Interior.Color = vbRed If r1.Value = 4 And r2.Value = -77 Then r2.Interior.Color = vbRed If r1.Value = 4 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r1.Interior.Color = vbRed If r1.Value = 4 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r2.Interior.Color = vbRed If r1.Value = 4 And r2.Value = -99 Then r1.Interior.Color = vbGreen If r1.Value = 4 And r2.Value = -99 Then r2.Interior.Color = vbGreen If r1.Value = 5 And r2.Value = "" Then r1.Interior.Color = vbRed If r1.Value = 5 And r2.Value = -66 Then r1.Interior.Color = vbRed If r1.Value = 5 And r2.Value = 0 Then r1.Interior.Color = vbRed If r1.Value = 5 And r2.Value = -77 Then r1.Interior.Color = vbRed If r1.Value = 5 And r2.Value = "" Then r2.Interior.Color = vbRed If r1.Value = 5 And r2.Value = -66 Then r2.Interior.Color = vbRed If r1.Value = 5 And r2.Value = 0 Then r2.Interior.Color = vbRed If r1.Value = 5 And r2.Value = -77 Then r2.Interior.Color = vbRed If r1.Value = 5 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r1.Interior.Color = vbRed If r1.Value = 5 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r2.Interior.Color = vbRed If r1.Value = 5 And r2.Value = -99 Then r1.Interior.Color = vbGreen If r1.Value = 5 And r2.Value = -99 Then r2.Interior.Color = vbGreen If r1.Value = 6 And r2.Value = "" Then r1.Interior.Color = vbRed If r1.Value = 6 And r2.Value = -66 Then r1.Interior.Color = vbRed If r1.Value = 6 And r2.Value = 0 Then r1.Interior.Color = vbRed If r1.Value = 6 And r2.Value = -77 Then r1.Interior.Color = vbRed If r1.Value = 6 And r2.Value = "" Then r2.Interior.Color = vbRed If r1.Value = 6 And r2.Value = -66 Then r2.Interior.Color = vbRed If r1.Value = 6 And r2.Value = 0 Then r2.Interior.Color = vbRed If r1.Value = 6 And r2.Value = -77 Then r2.Interior.Color = vbRed If r1.Value = 6 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r1.Interior.Color = vbRed If r1.Value = 6 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r2.Interior.Color = vbRed If r1.Value = 6 And r2.Value = -99 Then r1.Interior.Color = vbGreen If r1.Value = 6 And r2.Value = -99 Then r2.Interior.Color = vbGreen If r1.Value = 7 And r2.Value = "" Then r1.Interior.Color = vbRed If r1.Value = 7 And r2.Value = -66 Then r1.Interior.Color = vbRed If r1.Value = 7 And r2.Value = 0 Then r1.Interior.Color = vbRed If r1.Value = 7 And r2.Value = -77 Then r1.Interior.Color = vbRed If r1.Value = 7 And r2.Value = "" Then r2.Interior.Color = vbRed If r1.Value = 7 And r2.Value = -66 Then r2.Interior.Color = vbRed If r1.Value = 7 And r2.Value = 0 Then r2.Interior.Color = vbRed If r1.Value = 7 And r2.Value = -77 Then r2.Interior.Color = vbRed If r1.Value = 7 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r1.Interior.Color = vbRed If r1.Value = 7 And r2.Value <> "" And r2.Value <> -66 And r2.Value <> -77 And r2.Value <> 0 And r2.Value <> -99 Then r2.Interior.Color = vbRed If r1.Value = 7 And r2.Value = -99 Then r1.Interior.Color = vbGreen If r1.Value = 7 And r2.Value = -99 Then r2.Interior.Color = vbGreen Next I 'Error End Sub 

采取第一块,你可能会做这样的事情:

 If r1.Value = 94 Then Select case r2.Value case " ", "", -99, -66, -77 r1.Interior.Color = vbRed r2.Interior.Color = vbRed Case else r1.Interior.Color = vbGreen r2.Interior.Color = vbGreen End Select ElseIf r1.value = 1 then ' repeat the select case or use a function to return the correct colour. ' repeat End If 

你的其他块看起来基本上只关心,如果R2是-99,在这种情况下使用绿色,否则红色。