Предисловие: я разобрался с ответом, заканчивая вопрос. Я нигде не видел вопроса, поэтому я все равно его опубликую.
У меня есть стиль таблицы под названием Table Style 1. Я использовал некоторый VBA для форматирования ячейки, если дата соответствует определенной условия:
'formatting for due dates
Select Case (DueDate.Value)
Case ""
DueDate.Value = "No Due Date"
DueDate.Font.ColorIndex = 45
Case Is > 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, потому что индекс неизмененной ячейки в таблице. Оба просто меняют цвет шрифта на черный.
У меня есть два возможных способа сделать это, но они могут потерпеть неудачу:
- установить цвет шрифта = значение rgb / hex для Цвет текста задается при форматировании таблицы. Если я в конце концов изменю цвет шрифта в форматировании таблицы, это нужно будет обновить.
- установить цвет шрифта = цвет шрифта первой ячейки таблицы. Если бы цвет шрифта этой ячейки когда-либо изменился, это могло бы испортить это форматирование.
Я думаю, что свойство, которое я ищу, будет примерно таким:
With DueDate
.Interior.ColorIndex = 0
.Font.ColorIndex = myTable.tablestyle.FirstRowStripe.font.colorindex
end with