2015-01-12 9 views
0

열 D의 데이터를 기반으로 Excel 2010의 탭 색상을 변경하는 방법은 무엇입니까? 즉 ... D 열의 셀에 "F"또는 "f"가 포함 된 경우 탭을 빨간색으로 변경하고 D 열의 셀에 "PWE"또는 "pwe"가 포함 된 경우 탭을 노란색으로 변경 한 다음 "P"또는 "p"가 녹색으로 바뀌면 아무 것도 표시되지 않으면 탭 색상을 변경하지 마십시오. 도움말 ... 감사합니다!열의 데이터를 기반으로 탭 색상을 변경하십시오.

Sub tabby() 

    If Range("D:D").Text = "F" Or "f" Then 
     ActiveWorkbook.Tab.Color = RGB(255, 0, 0) 
    ElseIf Range("D:D").Text = "PWE" Or "pwe" Then 
     ActiveWorkbook.Tab.Color = RGB(255, 255, 0) 
    ElseIf Range("D:D").Text = "P" Or "p" Then 
     ActiveWorkbook.Tab.Color = RGB(0, 255, 0) 
    Else 
     ActiveWorkbook.Tab.Color = RGB(0, 0, 0) 
    End If 

End Sub 
+0

'Range ("D : D"). Text = "F"또는 "f"Then.의 의미가 명확하지 않습니다. 기본 의도가 유추 될 수는 있지만 일반적으로 * F *가 D 열에 존재하는지 여부를 결정하지는 않습니다. 더 적절한 단일 셀 (또는 더 작은 셀 범위)이 있었습니까? – Jeeped

+0

본질적으로, 나는 수동 테스트 스크립트가 한 눈에 실패했는지 확인하려고 노력하고있다. 따라서 D 열의 셀에 "F"(텍스트)가 있으면 테스트 절차가 실패하고 탭이 빨간색으로 바뀌어야합니다. 이 특정 통합 문서에 10 개의 테스트 스크립트 범위가 있으며 테스트 실행 후이를 열고 테스트를 통해 확인해야하는 모든 탭을 다시보고 다시 분석해야합니다 .... 이것이 도움이되기를 바랍니다. – MEB

답변

1

나는 용어가 열 D에서 발견하고 Select CaseIf... ElseIf ... ElseIf ...을 변환하는 경우 결정하기 위해 기본 워크 시트 COUNTIF function을 사용했습니다. 검색 용어는 반복되는 배열에 있습니다.

Sub tabby() 
    Dim w As Long, v As Long, vTERMs As Variant 
    vTERMs = Array("f", "pwe", "p") 
    For w = 1 To Sheets.Count 
     With Sheets(w) 
      For v = LBound(vTERMs) To UBound(vTERMs) 
       If CBool(Application.CountIf(.Columns(4), vTERMs(v))) Then 
        Select Case v 
         Case 0 
          .Tab.Color = RGB(255, 0, 0) 
         Case 1 
          .Tab.Color = RGB(255, 255, 0) 
         Case 2 
          .Tab.Color = RGB(0, 255, 0) 
        End Select 
        Exit For 
       Else 
        .Tab.Color = RGB(0, 0, 0) 
       End If 
      Next v 
     End With 
    Next w 
End Sub 

용어의 순서는 중요합니다. 하나의 용어가 발견되면 루프가 종료되므로 우선 순위를 검색해야합니다. 위의 샘플 코드에서 사용한 순서를 사용했습니다.

+0

Btw, 탭에서 색상을 제거하려면'.Color'가'RGB (0, 0, 0)'이 아니라'xlAutomatic' (예 : -4105)로 설정되어야합니다. 내 코드에서 코드의 색상 설정을 사용했지만 설명과 모순됩니다. 'RGB (0, 0, 0)'은 탭을 검정으로 설정합니다. – Jeeped

+0

고맙습니다. – MEB

관련 문제