Bir hücrenin yazı tipini nasıl saydam hale getirebilirim?


18

Excel'in koşullu biçimlendirmesini kullanarak bir ısı haritası oluşturuyorum. Hücrenin değerlerinin renk arka planında gösterilmesini istemiyorum. Hücrenin dolgu biçimlendirmesinde bulunana benzer şekilde, fontun biçimlendirmesini saydam yapmanın bir yolu var mı?

Bir ısı haritası olduğu için, tek bir renk kullanamıyorum (örneğin beyaz) ve her hücrenin font özelliğini uygun renge tek tek biçimlendirmek istemem.

DÜZENLEME: Açıklığa yardımcı olmak için, ısı haritası Koşullu Biçimlendirme> Renk Ölçeği> Kırmızı-Beyaz-Mavi (beyazın açık gri olarak değiştirildiği) kullanılarak renklendirilir, bu nedenle hücre dolgu değeri doğrudan ayarlanmaz, bunun yerine hesaplanmış bir değerdir renk gradyanı.

Sıcaklık haritası

Yanıtlar:


29

Yazı tipi rengini değiştirmeyen, ancak metni hücrelerden etkili bir şekilde kaldıran bir çözüm buldum. Hücre sayısı biçimini, değeri ile Özel olarak ayarlayın ;;;.


Harika bir şey gibi çalışıyor
Dev_Man

3

Bir hücrenin yazı tipi rengini dolgu rengiyle (manuel olarak değil) eşleştirmek için herhangi bir çalışma sayfası işlevselliğinin farkında olmasam da, bir makroyla yapmak çok kolay. Aşağıdaki ilk makro, seçilen aralığın hücrelerindeki yazı tipi renklerini dolgu renkleriyle eşleşecek şekilde değiştirir. İkincisi, yazı tipi renklerini varsayılan siyaha geri döndürür.

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

Makroları yüklemek için ana şeritten Developer/ öğesini seçin Visual Basicve ardından menüden Insert/ öğesini Moduleseçin. Kodu açılan düzenleme bölmesine yapıştırın. Makrolar , ana şeritten Developer/ seçilerek erişilebilen makro listesinde görünecektir Macros. Fare ile değiştirmek istediğiniz aralığı seçin ve çalıştırmak istediğiniz makroyu seçin.


Çok ilginç bir yaklaşım. Ben denedim ve noramlly oluşturulmuş bir dolu hücrede çalışır (yani hücre biçimi doğrudan seçilir). Ne yazık ki, hücre renginin bir degrade üzerinde koşullu bir format olduğu yerde çalışmaz, daha sonra sadece beyaza dönüşür. Düşüncesi olan var mı?
dav

Bu çok kötü. Bu StackOverflow gönderisindeki yanıtlar bir yaklaşım önerir. Bugün daha sonra kontrol edecek.
chuff

Teşekkürler, şimdilik sayı biçimi hile kullanıyorum, ancak daha iyi uzun vadeli bir çözüm elde etmek için bağlantınızda referans verilen VBA'yı çalışacağım.
dav

Kabul edilen cevabı değiştirdiğim için üzgünüm, ancak oy eşitsizliği ile uygun görünüyordu. Ayrıca, şu anda düzenli olarak kullandığım yöntemle de eşleşiyor.
dav

1

Tamam, ilk defa kod gönderdim, işte gidiyor. Ben makro yol gitmek için bir yol olacağını düşündüm, ama koşullu biçimlendirme kullanarak yazı tipi hücre rengi ile aynı olacak şekilde ayarlayamıyorum gibi o zaman tek yol hem benzer bir şekilde çalışan bir makro ile değiştirmek olacaktır koşullu biçimin etkisi için aşağıya bakın:

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

Umarım bu orijinal soru için üç yıl çok geç olmasına rağmen birine yardımcı olur.


1

Ben böyle yaparım.

.Cells (RowTo, ColHcpDiP) .Font.Color = .Cells (RowTo, ColHcpDiP) .Interior.Color 'Rengi görünmez olarak ayarla

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.