【问题标题】:Gradient Colors changing unexpectedly渐变颜色意外变化
【发布时间】:2016-06-01 08:55:22
【问题描述】:

我一直在研究一个格式化宏,它接受选择并根据用户表单中的选择值格式化它们。这些选项之一创建一个大的合并单元格,其颜色渐变从浅红色到深红色。

当我运行宏时,所有单元格的格式都正确,但是当我在工作表中导航时,我注意到一个奇怪的问题,渐变的颜色将变为蓝色而不是红色。有趣的是,原始颜色会随机返回,有时甚至会给出从蓝色到红色或从红色到蓝色的渐变。

如果我使用格式刷拉出颜色错误的单元格并在其他地方进行测试,新的损坏/更改的配色方案会随之移动。我在下面包含了格式化合并单元格的代码。我如何指定内部颜色可能有问题吗?

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

【问题讨论】:

    标签: vba excel gradient linear-gradients


    【解决方案1】:

    您添加了两次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 函数将使其更灵活地使用不同的颜色。

    【讨论】:

    • 我认为这甚至可能不是代码问题。在更改了您建议的代码并格式化测试区域后,我刚刚关闭并重新打开了文档,并且颜色从我格式化它时(从白色变为深红色)到我重新打开文件时(现在从所需的红色变为蓝色的)。有什么想法吗?
    • 试图添加图片链接但不能,所以他们在这里:After formattingAfter reopening
    • 抱歉,无法使用 Excel 2007 重现您的问题。即使在关闭并重新打开后也能正常工作。
    猜你喜欢
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2011-04-26
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多