前言:我在完成问题时想出了答案。我在任何地方都没有看到问题,因此无论如何我将其发布。
我有一个称为“表格样式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,因为表中未更改的单元格的索引。两者都只是将字体颜色更改为黑色。
我有两种可能的方法,但它们可能会失败:
我认为我要寻找的财产将是这样的:
With DueDate
.Interior.ColorIndex = 0
.Font.ColorIndex = myTable.tablestyle.FirstRowStripe.font.colorindex
end with
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。