아래 코드는 오류를 발생시키지 않지만 원하는 작업을 정확하게 수행하지 못하고 잘못된 작업을 수행하고 있는지 잘 모르겠습니다.모든 시트에 특정 셀 집합 서식 지정
코드 목적은 각 시트의 기준에 따라 모든 시트의 특정 셀에 수식을 추가하는 것입니다. 수식의이 부분은 완벽하게 잘 작동합니다 (짧게 만들면 보너스가됩니다). 제대로 작동하지 않는 부분은 코드의 서식 섹션입니다. 정의 된 서식이 모든 시트에서 발생하지만 첫 번째 요약 시트에서만 발생합니다.
앞서 언급했듯이 오류 메시지는 없지만 모든 시트가 아니라 요약 시트의 셀 서식 만 변경하면됩니다.
어떤 조언을 많이 주시면 감사하겠습니다 :)
Sub Summary()
Dim wb1 As Workbook
Dim Sht As Worksheet
Dim Rng, Rng2 As Range
Dim cell As Range
Dim ws As Worksheet
Set wb1 = ThisWorkbook
Set Sht = wb1.Worksheets("Summary")
Set Rng = Sht.Range("A6:A" & Sht.Cells(Sht.Rows.Count, "A").End(xlUp).Row)
For Each cell In Rng
Set ws = wb1.Sheets(cell.Text)
Select Case ws.Range("A4").Value
Case "Standard Kitchen Template"
ws.Range("G10").Formula = "=Sum(e2167:e2182, e2179:e2885)"
ws.Range("H10").Formula = "=Sum(e49:e54, e291:e296)"
ws.Range("I10").Formula = "=Sum(e125:e139)"
ws.Range("J10").Formula = "=Sum(e213:e286, e299:e302)"
ws.Range("K10").Formula = "=Sum(e168:e208)"
ws.Range("L10").Formula = "=Sum(e156:e162)"
ws.Range("O10").Formula = "=Sum(e142:e148)"
ws.Range("Q10").Formula = "=Sum(e14:e48, e56:e78)"
Case "Standard Bathroom Template"
ws.Range("G10").Formula = "=Sum(e334:e339, e347:e1050)"
ws.Range("H10").Formula = "=Sum(e185:e317)"
ws.Range("I10").Formula = "=Sum(e79:e97)"
ws.Range("J10").Formula = "=Sum(e68:e70, e323:e326)"
ws.Range("K10").Formula = "=Sum(e134:e178)"
ws.Range("L10").Formula = "=Sum(e115:e132)"
ws.Range("O10").Formula = "=Sum(e99:e107)"
ws.Range("Q10").Formula = "=Sum(e29:e33, e41:e50)"
End Select
Next cell '<------The code below this line is the one not working properly
For Each Sht In ThisWorkbook.Sheets
With Sht
Range("G10").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 12611584
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("H10").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("I10").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("J10").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("K10").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("L10").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 10498160
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("O10").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent3
.TintAndShade = -0.249977111117893
.PatternTintAndShade = 0
End With
Range("Q10").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.149998474074526
.PatternTintAndShade = 0
End With
End With
Next
End Sub
고마워요. 지금은 완벽하게 작동합니다. 내가 추가했을 때. Range 앞에 "Range 클래스의 Select 메서드가 실패했습니다"라는 오류가 발생했지만 코드를 붙여 넣으면 코드가 완벽하게 작동합니다. 원래 코드에서 잘못된 부분이 있었습니까? – kira123
'Next '를'Next Sht'로 바꾸고 가시성을 돕기 위해 들여 쓰기를 정돈했으나 그 답안에서 설명했던 것을 제외하고는 구문이 동일하게 유지되었습니다. 그래도 '선택'을 피하는 것이 가장 좋습니다! 직접 범위를 참조하십시오! – Jordan
멋지다. 고마워. – kira123