Всегда убедитесь, что вы ссылаетесь на намеченный лист.Просто Range(A1)
будет ссылаться на активный лист.Вам нужно сделать Sheets("MySheet").Range(A1)
.Обратите внимание, что также лучше всего избегать использования .Select
/ .Activate
Sub IfJNegRedTab()
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Worksheets
With sht
.Range("K1").FormulaR1C1 = "=COUNTIF(C[-1],""<0"")"
If .Range("K1").Value > 0 Then
With .Tab
.Color = 255
.TintAndShade = 0
End With
End If
End With
Next sht
End Sub
Кроме того, формула в K1
, используемая только для проверки значения в столбце слева, может бытьудалено:
Sub IfJNegRedTab_v2()
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Worksheets
With sht
If .Range("K1").Offset(0, -1).Value < 0 Then
With .Tab
.Color = 255
.TintAndShade = 0
End With
End If
End With
Next sht
End Sub