渐变颜色意外变化

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功能可以更灵活地搭配不同的颜色。