Код, приведенный ниже, не дает ошибок, но это не делает то, что я хочу, и я не уверен, что я делаю неправильно.Форматирование определенного набора ячеек на всех листах
Целью кода является добавление формул в конкретные ячейки во всех листах на основе критериев на каждом листе. Эта часть формул работает отлично (если ее можно сделать короче, то это будет бонус). Часть, которая не работает должным образом, является частью форматирования кода. Я хочу, чтобы определенное форматирование происходило на всех листах, но это происходит только на первом «сводном» листе.
Как я уже упоминал ранее, сообщений об ошибках нет, он проходит через штраф, но только изменяет форматирование ячеек в Сводном листе, а не на всех листах.
Любые советы были бы оценены :)
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 failed», но когда я копирую вставку кода, он отлично работает. было ли что-то еще, что было неправильным в моем исходном коде? – kira123
Я изменил 'Next' на' Next Sht' и подобрал некоторые углубления, чтобы помочь с видимостью, но синтаксис остался прежним, за исключением того, что я объяснил в ответе. Всегда лучше избегать «Выбрать»! Просто обратитесь к ассортименту напрямую! – Jordan
Хорошо, спасибо, спасибо – kira123