16

Я создаю тепловую карту, используя условное форматирование Excel. Я не хочу, чтобы значения ячейки отображались на цветном фоне. Есть ли способ сделать прозрачным форматирование шрифта, подобное тому, что можно найти в форматировании заливки ячейки?

Поскольку это тепловая карта, я не могу использовать один цвет (например, белый), и я бы предпочел, чтобы не нужно было индивидуально форматировать свойство шрифта каждой ячейки для соответствующего цвета.

РЕДАКТИРОВАТЬ: Чтобы уточнить, карта тепла окрашивается с использованием условного форматирования> Цветовая шкала> Красный-Белый-Синий (где белый был изменен на светло-серый), поэтому значение заполнения ячейки не устанавливается напрямую, скорее это расчетное значение. на цветном градиенте.

Тепловая карта

4 ответа4

27

Я нашел обходной путь, который не меняет цвет шрифта, но эффективно удаляет текст из ячеек. Настройте формат номера ячейки на Пользовательский со значением ;;; ,

3

Хотя мне неизвестны какие-либо функциональные возможности рабочего листа, позволяющие сопоставить цвет шрифта ячейки с цветом заливки (кроме ручного), это очень легко сделать с помощью макроса. Первый макрос ниже меняет цвет (ы) шрифта в ячейках выбранного диапазона, чтобы соответствовать их цветам заливки. Второй возвращает цвета шрифта обратно по умолчанию черный.

Sub HideFont()
    Dim cell As Variant
    For Each cell In Selection
        cell.Font.Color = cell.Interior.Color
    Next cell
End Sub

Sub UnhideFont()
    Dim cell As Variant
    For Each cell In Selection
        cell.Font.Color = 0
    Next cell
End Sub

Чтобы установить макросы, выберите « Developer / Visual Basic на главной ленте, а затем выберите « Insert / Module в меню. Вставьте код в открывшуюся панель редактирования. Макросы появятся в списке макросов, доступном при выборе Developer / Macros на главной ленте. Просто выберите мышью диапазон, который вы хотите изменить, и выберите макрос, который вы хотите запустить.

1

Вот как я это делаю.

,Клетки (RowTo, ColHcpDiP).Шрифт.Цвет =.Клетки (RowTo, ColHcpDiP).Интерьер.Цвет 'Установить цвет невидимым

1

Итак, это первый раз, когда я отправляю код, так что здесь. Я думал, что макро-маршрут будет подходить, но так как вы не можете установить шрифт таким же, как цвет ячейки, используя условное форматирование, тогда единственный другой способ - это изменить оба с помощью макроса, который работает аналогично Эффект условного формата см. ниже:

Sub change()

    Dim Rstart, Rmid, Rend, Gstart, Gmid, Gend, Bstart, Bmid, Bend, Rsd, Rdd,_
    Gsd, Gdd, Bsd, Bdd, Rcell, Gcell, Bcell As Integer
    Dim maxsel, minsel, halfsel, halfval, v As Double



    Rstart = 0
    Rmid = 230
    Rend = 255
    Gstart = 0 
    Gmid = 230
    Gend = 0
    Bstart = 255
    Bmid = 230
    Bend = 0

    Rsd = Rmid - Rstart
    Rdd = Rend - Rmid

    Gsd = Gmid - Gstart
    Gdd = Gend - Gmid

    Bsd = Bmid - Bstart
    Bdd = Bend - Bmid

    maxsel = Application.WorksheetFunction.Max(Selection)
    minsel = Application.WorksheetFunction.Min(Selection)
    halfsel = (maxsel - minsel) / 2
    halfval = minsel + halfsel
    If halfval = 0 Then Exit Sub

    Dim cell As Variant
    For Each cell In Selection
        v = cell.Value
        If v >= minsel And v < halfsel Then
            Rcell = Round((Rstart + ((halfval - v) / halfsel) * Rsd), 0)
            Gcell = Round((Gstart + ((halfval - v) / halfsel) * Gsd), 0)
            Bcell = Round((Bstart + ((halfval - v) / halfsel) * Bsd), 0)
        Else
            Rcell = Round((Rmid + ((v - halfval) / halfsel) * Rdd), 0)
            Gcell = Round((Gmid + ((v - halfval) / halfsel) * Gdd), 0)
            Bcell = Round((Bmid + ((v - halfval) / halfsel) * Bdd), 0)
        End If

    cell.Font.Color = RGB(Rcell, Gcell, Bcell)
    cell.Interior.Color = RGB(Rcell, Gcell, Bcell)

    Next cell

    End Sub

Надеюсь, это кому-нибудь поможет, хотя уже три года слишком поздно для первоначального вопроса.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .