如何将单元格的格式重置为表中设置的格式?

问题描述 投票:0回答:1

前言:我在完成问题时想出了答案。我在任何地方都没有看到问题,因此无论如何我将其发布。

我有一个称为“表格样式1”的表格样式。如果日期满足某些条件,我已经使用一些VBA格式化单元格:

'formatting for due dates
Select Case (DueDate.Value)
    Case ""
        DueDate.Value = "No Due Date"
        DueDate.Font.ColorIndex = 45
    Case DueDate.Value - Date > 30
        With DueDate
            .Interior.ColorIndex = 36
            .Font.ColorIndex = 53
        End With
    Case Else
        With DueDate
            .Interior.ColorIndex = 0
            .Font.ColorIndex = 1
        End With
End Select

问题出在其他情况下,Font.ColorIndex。如果此子程序的先前运行已更改了字体颜色,则我需要将其重置为表格式中设置的字体颜色。

我尝试过颜色索引0和1。0,因为它适用于interior.colorindex。 1,因为表中未更改的单元格的索引。两者都只是将字体颜色更改为黑色。

我有两种可能的方法,但它们可能会失败:

  1. 设置字体颜色=在表格格式中设置的文本颜色的rgb / hex值。如果我最终以表格式更改了字体的颜色,则必须对此进行更新。
  2. 设置字体颜色=表中第一个单元格的字体颜色。如果该单元格的字体颜色发生了变化,则会弄乱这种格式。

我认为我要寻找的财产将是这样的:

With DueDate
    .Interior.ColorIndex = 0
    .Font.ColorIndex = myTable.tablestyle.FirstRowStripe.font.colorindex
end with
excel vba excel-vba
1个回答
0
投票
With DueDate .Interior.ColorIndex = 0 .Font.ColorIndex = myTable.TableStyle.TableStyleElements(5).Font.ColorIndex End With

这里是more info on the TableStyleElements object。这是XlTableStyleElementType enumeration list

我使用了枚举#5,xlRowStripe1。
© www.soinside.com 2019 - 2024. All rights reserved.