代码不循环通过表

我的工作簿包含多个名为Detail1,Detail2,Detail3等的工作表。 我想根据单元格B15的内容对表单着色。 但是,该代码仅为Detail1着色,不能循环通过其他工作表。 我究竟做错了什么?

Sub Color_by_cell_value() Dim X As String Dim ws As Worksheet For Each ws In Worksheets If ws.Name Like "Detail*" Then X = Range("B15").Value Select Case X Case Is = "no" Range("A1:AZ100").Select With Selection.Interior .ThemeColor = xlThemeColorAccent3 .TintAndShade = 0.799981688894314 End With Range("B15").Select With Selection.Interior .Color = 5296274 End With Case Is = "yes" Range("A1:AZ100").Select With Selection.Interior .ThemeColor = xlThemeColorAccent2 .TintAndShade = 0.599993896298105 End With Range("B15").Select With Selection.Interior .Color = 255 End With Case Is = "yes/no" Range("A1:AZ100").Select With Selection.Interior .ThemeColor = xlThemeColorAccent6 .TintAndShade = 0.799981688894314 End With Range("B15").Select With Selection.Interior .Color = 65535 End With End Select End If Next ws End Sub 

有很多方法可以编辑这些代码,使其更有效率,但要回答你的问题。 如果ws.Name Like "Detail*" Then

  For Each ws In Worksheets If ws.Name Like "Detail*" Then ws.Select X = Range("B15").Value Select Case X 

您也可以使用ws.Activate

 Sub Color_by_cell_value() Dim X As String Dim ws As Worksheet Application.ScreenUpdating = False For Each ws In Worksheets If ws.Name Like "Detail*" Then ws.Activate X = Range("B15").Value Select Case X Case Is = "no" Range("A1:AZ100").Select With Selection.Interior .ThemeColor = xlThemeColorAccent3 .TintAndShade = 0.799981688894314 End With Range("B15").Select With Selection.Interior .Color = 5296274 End With Case Is = "yes" Range("A1:AZ100").Select With Selection.Interior .ThemeColor = xlThemeColorAccent2 .TintAndShade = 0.599993896298105 End With Range("B15").Select With Selection.Interior .Color = 255 End With Case Is = "yes/no" Range("A1:AZ100").Select With Selection.Interior .ThemeColor = xlThemeColorAccent6 .TintAndShade = 0.799981688894314 End With Range("B15").Select With Selection.Interior .Color = 65535 End With End Select End If Next ws Application.ScreenUpdating = True End Sub 

注意我也设置Application.ScreenUpdatingFalse作为一个很好的习惯。