Есть такой макрос вба, который в заданном диапазоне Z6:AP28 - проводит что-то вроде условного форматирования. Если видит 1, то ставит зеленый цвет. А если видит 0 - то ставит белый цвет шрифта. Но он работает с простым цветом.
Скажите - как научить этот макрос аналогичным образом провести такую же расстановку цветов - в диапазоне E6:R28, где нужна сложная заливка ? (То есть там - белый цвет - градиентно переходит в желтый, или белый в серый.)
Здравствуйте. Подскажите с решением вопроса.
Есть такой макрос вба, который в заданном диапазоне Z6:AP28 - проводит что-то вроде условного форматирования. Если видит 1, то ставит зеленый цвет. А если видит 0 - то ставит белый цвет шрифта. Но он работает с простым цветом.
Скажите - как научить этот макрос аналогичным образом провести такую же расстановку цветов - в диапазоне E6:R28, где нужна сложная заливка ? (То есть там - белый цвет - градиентно переходит в желтый, или белый в серый.)mv6677
mv6677, вот вам пример сложной заливки для одного значения- [vba]
Код
Sub Макрос2() Dim c As Range For Each c In [e6:r28] If c = 1 Then With c.Interior .Pattern = xlPatternLinearGradient .Gradient.Degree = 45 With .Gradient.ColorStops .Clear .Add(0).Color = vbWhite .Add(1).Color = 65535 End With End With End If Next End Sub
[/vba]
mv6677, вот вам пример сложной заливки для одного значения- [vba]
Код
Sub Макрос2() Dim c As Range For Each c In [e6:r28] If c = 1 Then With c.Interior .Pattern = xlPatternLinearGradient .Gradient.Degree = 45 With .Gradient.ColorStops .Clear .Add(0).Color = vbWhite .Add(1).Color = 65535 End With End With End If Next End Sub
Апострофф, подскажите - как две проверки в один код совместить, чтобы не писать два раза For Each c In [E6:R28] ?
[vba]
Код
Sub Макрос4() Dim c As Range For Each c In [E6:R28] If c = 0.5 Then With c.Interior .Pattern = xlPatternLinearGradient .Gradient.Degree = 45 With .Gradient.ColorStops .Clear .Add(0).Color = vbWhite .Add(1).ThemeColor = xlThemeColorDark2 .Add(1).TintAndShade = -0.250984221930601 End With End With End If Next
For Each c In [E6:R28] If c = 1 Then With c.Interior .Pattern = xlPatternLinearGradient .Gradient.Degree = 45 With .Gradient.ColorStops .Clear .Add(0).Color = vbWhite .Add(1).Color = 65535 End With End With End If Next
End Sub
[/vba]
Апострофф, подскажите - как две проверки в один код совместить, чтобы не писать два раза For Each c In [E6:R28] ?
[vba]
Код
Sub Макрос4() Dim c As Range For Each c In [E6:R28] If c = 0.5 Then With c.Interior .Pattern = xlPatternLinearGradient .Gradient.Degree = 45 With .Gradient.ColorStops .Clear .Add(0).Color = vbWhite .Add(1).ThemeColor = xlThemeColorDark2 .Add(1).TintAndShade = -0.250984221930601 End With End With End If Next
For Each c In [E6:R28] If c = 1 Then With c.Interior .Pattern = xlPatternLinearGradient .Gradient.Degree = 45 With .Gradient.ColorStops .Clear .Add(0).Color = vbWhite .Add(1).Color = 65535 End With End With End If Next
For Each c In [E6:R28] If c = 0.5 Then With c.Interior .Pattern = xlPatternLinearGradient .Gradient.Degree = 45 With .Gradient.ColorStops .Clear .Add(0).Color = vbWhite .Add(1).ThemeColor = xlThemeColorDark2 .Add(1).TintAndShade = -0.250984221930601 End With End With ElseIf c = 1 Then With c.Interior .Pattern = xlPatternLinearGradient .Gradient.Degree = 45 With .Gradient.ColorStops .Clear .Add(0).Color = vbWhite .Add(1).Color = 65535 End With End With End If Next
End Sub
[/vba]
[vba]
Код
Sub Макрос4()
Dim c As Range
For Each c In [E6:R28] If c = 0.5 Then With c.Interior .Pattern = xlPatternLinearGradient .Gradient.Degree = 45 With .Gradient.ColorStops .Clear .Add(0).Color = vbWhite .Add(1).ThemeColor = xlThemeColorDark2 .Add(1).TintAndShade = -0.250984221930601 End With End With ElseIf c = 1 Then With c.Interior .Pattern = xlPatternLinearGradient .Gradient.Degree = 45 With .Gradient.ColorStops .Clear .Add(0).Color = vbWhite .Add(1).Color = 65535 End With End With End If Next