渐变颜色意外变化
Gradient Colors changing unexpectedly
我一直在研究一个格式化宏,它接受选择并根据用户表单中选择的值格式化它们。这些选项之一创建一个大的合并单元格,其颜色从浅红色到深红色渐变。
当我 运行 宏时,所有单元格的格式都正确,但是当我在 sheet 周围导航时,我注意到一个奇怪的问题,渐变的颜色将变为蓝色而不是红色。有趣的是,原始颜色会随机 return,有时甚至会给出从蓝色到红色或从红色到蓝色的渐变。
如果我使用格式刷拉出颜色错误的单元格并在别处进行测试,新的 broken/changing 配色方案会随之移动。我在下面包含了格式化合并单元格的代码。我指定内部颜色的方式可能有问题吗?
With Range(WorkingRange(1, 2), WorkingRange(1, WorkingRange.Count - 1))
.Merge
.HorizontalAlignment = xlLeft
.WrapText = True
.Interior.Pattern = xlPatternLinearGradient
.Interior.Gradient.ColorStops.Add(0).Color = 255
.Interior.Gradient.ColorStops.Add(0).TintAndShade = 0
.Interior.Gradient.ColorStops.Add(1).Color = 130
.Font.Bold = True
End With
您将 ColorStop
0 添加了两次。第二次使用默认颜色。
应该是
...
.Interior.Pattern = xlPatternLinearGradient
.Interior.Gradient.ColorStops.Clear
With .Interior.Gradient.ColorStops.Add(0)
.Color = RGB(255, 0, 0)
.TintAndShade = 0
End With
.Interior.Gradient.ColorStops.Add(1).Color = RGB(130, 0, 0)
...
使用RGB
功能可以更灵活地搭配不同的颜色。
我一直在研究一个格式化宏,它接受选择并根据用户表单中选择的值格式化它们。这些选项之一创建一个大的合并单元格,其颜色从浅红色到深红色渐变。
当我 运行 宏时,所有单元格的格式都正确,但是当我在 sheet 周围导航时,我注意到一个奇怪的问题,渐变的颜色将变为蓝色而不是红色。有趣的是,原始颜色会随机 return,有时甚至会给出从蓝色到红色或从红色到蓝色的渐变。
如果我使用格式刷拉出颜色错误的单元格并在别处进行测试,新的 broken/changing 配色方案会随之移动。我在下面包含了格式化合并单元格的代码。我指定内部颜色的方式可能有问题吗?
With Range(WorkingRange(1, 2), WorkingRange(1, WorkingRange.Count - 1))
.Merge
.HorizontalAlignment = xlLeft
.WrapText = True
.Interior.Pattern = xlPatternLinearGradient
.Interior.Gradient.ColorStops.Add(0).Color = 255
.Interior.Gradient.ColorStops.Add(0).TintAndShade = 0
.Interior.Gradient.ColorStops.Add(1).Color = 130
.Font.Bold = True
End With
您将 ColorStop
0 添加了两次。第二次使用默认颜色。
应该是
...
.Interior.Pattern = xlPatternLinearGradient
.Interior.Gradient.ColorStops.Clear
With .Interior.Gradient.ColorStops.Add(0)
.Color = RGB(255, 0, 0)
.TintAndShade = 0
End With
.Interior.Gradient.ColorStops.Add(1).Color = RGB(130, 0, 0)
...
使用RGB
功能可以更灵活地搭配不同的颜色。