Как сбросить формат ячейки на форматирование, заданное в таблице? - PullRequest
0 голосов
/ 07 апреля 2020

Предисловие: я разобрался с ответом, заканчивая вопрос. Я нигде не видел вопроса, поэтому я все равно его опубликую.

У меня есть стиль таблицы под названием 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, потому что индекс неизмененной ячейки в таблице. Оба просто меняют цвет шрифта на черный.

У меня есть два возможных способа сделать это, но они могут потерпеть неудачу:

  1. установить цвет шрифта = значение rgb / hex для Цвет текста задается при форматировании таблицы. Если я в конце концов изменю цвет шрифта в форматировании таблицы, это нужно будет обновить.
  2. установить цвет шрифта = цвет шрифта первой ячейки таблицы. Если бы цвет шрифта этой ячейки когда-либо изменился, это могло бы испортить это форматирование.

Я думаю, что свойство, которое я ищу, будет примерно таким:

With DueDate
    .Interior.ColorIndex = 0
    .Font.ColorIndex = myTable.tablestyle.FirstRowStripe.font.colorindex
end with

1 Ответ

2 голосов
/ 07 апреля 2020

Потребовалось некоторое копание, но я нашел нужное свойство.

With DueDate
    .Interior.ColorIndex = 0
    .Font.ColorIndex = myTable.TableStyle.TableStyleElements(5).Font.ColorIndex
End With

Вот дополнительная информация об объекте TableStyleElements . Вот список перечислений XlTableStyleElementType .

Я использовал перечисление №5, xlRowStripe1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...