如何将颜色应用于xlHairline

时间:2018-06-13 09:11:09

标签: vba excel-vba excel

我写了一个小宏来格式化excel表并将其导出为PDF。

我正在整理PDF的外观和感觉,我想修改边框。

我已经按照我想要的方式修改了边框,但我想尝试使用 xlHairline 类型的 XLBorderWeight

问题在于我想将颜色应用于 xlHairline 。它出现在我的PDF中黑色而不是我的 ColorIndex(3)(它的红色)

所有其他 XLBorderWeight 都会正确上色。

With Selection.FormatConditions(1)
    With .Font
        .ColorIndex = 3
    End With
    With .Borders
        .ColorIndex = 3
        .Weight = xlHairline
        .LineStyle = xlContinuous
    End With
End With

我也在条件格式之外尝试过,并出现同样的问题。

我搜索了过去2小时,看是否可以为 xlHairline 着色,但没有回答。

这里有人知道如何解决这个问题吗?

修改

使用.Borders(条件格式化)或.Borders(xlBorderIndex Enumeration)应用时,可以看到它的视觉效果

此处边缘为 xlHairline red ,而内部为 xlThin white

如果我使用我的脚本或Vityata的答案

,结果是一样的

Black Hairline

1 个答案:

答案 0 :(得分:0)

这是一个简单的例子:

Sub TestMe()

    With Selection
        .Borders(xlEdgeLeft).Weight = xlHairline
        .Borders(xlEdgeRight).Weight = xlHairline
        .Borders(xlEdgeBottom).Weight = xlHairline
        .Borders(xlEdgeTop).Weight = xlHairline

        .Borders(xlEdgeTop).ColorIndex = 3
        .Borders(xlEdgeLeft).ColorIndex = 3
        .Borders(xlEdgeRight).ColorIndex = 3
        .Borders(xlEdgeBottom).ColorIndex = 3
    End With

End Sub

在您的代码中,如果您编写With .Borders(xlEdgeLeft),那么它可以正常工作,但仅适用于左边框。然后你必须想办法覆盖所有4个边缘,例如: