2012-09-17 4 views
1

나는 새 탭을 만들고, 탭의 이름을 변경하기 전에 새 탭을 만든 스크립트를 만들었습니다. 그래서 그것을 Sheet1부터 Sheet4까지 모두 빨간색으로 만들고 싶습니다. 엑셀 VBA를 사용하여 동시에 모든 네 개의 탭을 변경하는 방법이 VBA를 사용하여 Excel에서 탭의 색을 변경하고 있습니까?

With wbBK2.Sheets(wsWS1).Tab 
    .Color = 255 
End With 

이제 위의 코드는 개별 탭에 대한 작동하지만 궁금?

감사합니다. 이 같은

답변

6

시도 뭔가 :

Dim Sht As Worksheet 
For Each Sht In Application.Worksheets 
    With Sht.Tab 
     .Color = 255 
    End With 
Next Sht 

참고 : 나는 당신이 wbBK2.WorksheetsApplication.Worksheets을 변경할 수 있습니다 생각하지만, 내가 기억하는 카페인이 너무 부족 해요

, 또는 시간 테스트 해봐.

+0

잘 작동하지만 통합 문서의 모든 시트에는 OP를 지원하지 않는 것으로 보이는 색상이 적용됩니다. 'If ​​sht.Name = "Sheet1"또는 sht.Name = "Sheet2"...와 같은 것이 필요할 것입니다. –

+0

아, 저는 통합 문서에 총 4 장이 있다는 가정하에있었습니다. 그들 모두를 색으로 바꾼다. – danielpiestrak

+1

그리고 알다시피 ... 마치 네가 제대로 된 것 같아! 그 아름다움 ... 1,000 가지 질문을 해석하는 방법, 1,000 가지 방법으로 대답을 제공합니다. 이점은 모든 것을 배우는 것입니다! –

3

처음에는 Sheets(Array("Sheet1","Sheet2")).Select 메서드를 사용하는 것이 효과가있을 것이라고 생각했지만 테스트 (매크로 레코더를 실행 한 후)하지 않은 것으로 나타났습니다.

업데이트

OOO 좋은 의견이 있었다. 더 깔끔하고 읽기 쉬운 방법입니다.

Sub SheetTabColor() 

Dim mySheets As Worksheets 
Dim mySheet As Worksheet 

Set mySheets = Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4")) 

For Each mySheet In mySheets 
    mySheet.Tab.Color = 255 
Next 


End Sub 

이것은 내 원본이었습니다. 같은 아이디어, 약간 다른 방법 :

Sub SheetTabColor() 

Dim arrSheets() As String 

arrSheets() = Split("Sheet1,Sheet2,Sheet3,Sheet4", ",") 

Dim i As Integer 
For i = LBound(arrSheets()) To UBound(arrSheets()) 

    Sheets(arrSheets(i)).Tab.Color = 255 

Next 

End Sub 
+1

Set SelSheets = wbBK2.Sheets (Array ("Sheet1", "Sheet2", "Sheet3", "Sheet5", "Sheet6"))를 사용하여 여전히 시트 배열을 반복 할 수 있습니다. Tab.Color = 255 : 다음 sh ' – user3357963

+0

+1 @ooo. 나는 그 코멘트를 너무 좋아했다, 나는 나의 대답을 편집했다 :) –

관련 문제