目的:按方向、按路段、按指標統計宣蕪高速公路取樣點指標值中優、良、中、次、差所佔的比例
Sub Rank()
'按方向、路段統計行車道各路段在優、良、中、次、差中的比例
Dim SheetName(14) '存儲所有工作表的名稱
Dim TotalRows As Integer '每個工作表的總行數
Dim ColNum As Integer
'各個工作表的名稱裝入數組
For i = 1 To 7
For j = 1 To 2
SheetName(2 * (i - 1) + j - 1) = Sheets("Result").Cells(8 * (i - 1) + 1, 6 * (j - 1) + 2).Value
Next j
Next i
For i = 1 To 14
TotalRows = Sheets(SheetName(i - 1)).UsedRange.Rows.Count
For j = 2 To TotalRows
If (i Mod 2) = 1 Then '判斷哪一條路
If Sheets(SheetName(i - 1)).Cells(j, 1) = "蕪宣高速公路G50滬渝段" Then '判斷是哪一段路
ColNum = 2
Else
ColNum = 5
End If
ElseIf Sheets(SheetName(i - 1)).Cells(j, 1) = "蕪宣高速公路G50滬渝段" Then '判斷是哪一段路
ColNum = 8
Else
ColNum = 11
End If
Select Case Sheets(SheetName(i - 1)).Cells(j, 8) 'TCEI
Case Is >= 90
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)), ColNum).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)), ColNum).Value + 1
Case Is >= 80
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 1, ColNum).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 1, ColNum).Value + 1
Case Is >= 70
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 2, ColNum).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 2, ColNum).Value + 1
Case Is >= 60
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 3, ColNum).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 3, ColNum).Value + 1
Case Is < 60
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 4, ColNum).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 4, ColNum).Value + 1
End Select
Select Case Sheets(SheetName(i - 1)).Cells(j, 10) 'PPCI
Case Is >= 90
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)), ColNum + 1).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)), ColNum + 1).Value + 1
Case Is >= 80
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 1, ColNum + 1).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 1, ColNum + 1).Value + 1
Case Is >= 70
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 2, ColNum + 1).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 2, ColNum + 1).Value + 1
Case Is >= 60
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 3, ColNum + 1).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 3, ColNum + 1).Value + 1
Case Is < 60
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 4, ColNum + 1).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 4, ColNum + 1).Value + 1
End Select
Select Case Sheets(SheetName(i - 1)).Cells(j, 12) 'PSCI
Case Is >= 90
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)), ColNum + 2).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)), ColNum + 2).Value + 1
Case Is >= 80
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 1, ColNum + 2).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 1, ColNum + 2).Value + 1
Case Is >= 70
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 2, ColNum + 2).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 2, ColNum + 2).Value + 1
Case Is >= 60
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 3, ColNum + 2).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 3, ColNum + 2).Value + 1
Case Is < 60
Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 4, ColNum + 2).Value = Sheets("Result").Cells(4 * (i - 1 + (i Mod 2)) + 4, ColNum + 2).Value + 1
End Select
Next j
Next i
End Sub