Bagaimana cara membuat font sel transparan?

18

Saya membuat peta panas menggunakan pemformatan bersyarat Excel. Saya tidak ingin nilai sel ditampilkan dengan latar belakang warna. Apakah ada cara untuk membuat pemformatan font transparan, mirip dengan apa yang ditemukan dalam pemformatan isian sel?

Karena ini adalah peta panas, saya tidak dapat menggunakan satu warna (misalnya putih) dan saya lebih suka tidak harus memformat masing-masing properti font setiap sel ke warna yang sesuai.

EDIT: Untuk membantu memperjelas, peta panas diwarnai menggunakan Conditional Formating> Color Scale> Red-White-Blue (di mana putih diubah menjadi abu-abu terang), sehingga nilai pengisian sel tidak langsung ditetapkan, melainkan merupakan nilai yang dihitung pada gradien warna.

Peta panas

dav
sumber

Jawaban:

29

Saya telah menemukan solusi yang tidak mengubah warna font, tetapi secara efektif menghapus teks dari sel. Sesuaikan format nomor sel ke Kustom, dengan nilai ;;;.

dav
sumber
Hebat ini bekerja seperti apa pun
Dev_Man
3

Meskipun saya tidak mengetahui fungsionalitas lembar kerja untuk mencocokkan warna font sel dengan warna isiannya (selain secara manual), ini sangat mudah dilakukan dengan makro. Makro pertama di bawah ini mengubah warna font dalam sel dari rentang yang dipilih agar sesuai dengan warna isinya. Yang kedua mengembalikan warna font ke hitam default.

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

Untuk menginstal makro, pilih Developer/ Visual Basicdari pita utama lalu pilih Insert/ Moduledari menu. Rekatkan kode ke panel edit yang terbuka. Makro akan muncul di daftar makro yang dapat diakses dengan memilih Developer/ Macrosdari pita utama. Cukup pilih dengan mouse rentang yang ingin Anda modifikasi dan pilih makro yang ingin Anda jalankan.

orang yg kurang ajar
sumber
Pendekatan yang sangat menarik. Saya mencobanya dan berfungsi dalam sel diisi yang diformat noramlly (yaitu di mana format sel dipilih langsung). Sayangnya, itu tidak berfungsi di mana warna sel adalah format bersyarat pada gradien - maka itu hanya berubah menjadi putih. Adakah pikiran?
Hari
Sayang sekali. Tanggapan dalam posting StackOverflow ini menyarankan suatu pendekatan. Akan check out hari ini.
chuff
Terima kasih, untuk sekarang saya menggunakan cheat format angka saya, tapi saya akan memperbaiki VBA yang dirujuk di tautan Anda untuk mendapatkan solusi jangka panjang yang lebih baik.
dav
Maaf karena mengubah jawaban yang diterima, tetapi dengan disparitas suara sepertinya cocok. Juga, ini cocok dengan metode yang saya gunakan secara teratur sekarang.
dav
1

Oke, jadi ini pertama kali saya mengirim kode, jadi begini. Saya pikir rute makro akan menjadi cara untuk pergi, tetapi karena Anda tidak dapat mengatur font menjadi sama dengan warna sel menggunakan pemformatan bersyarat maka satu-satunya cara lain adalah mengubah keduanya dengan makro yang bekerja mirip dengan efek dari format bersyarat, lihat di bawah:

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

Semoga ini bisa membantu seseorang, walaupun sudah terlambat tiga tahun untuk pertanyaan aslinya.

timbosides
sumber
1

Beginilah cara saya melakukannya.

.Cells (RowTo, ColHcpDiP) .Font.Color = .Cells (RowTo, ColHcpDiP) .Interior.Color 'Atur warna tidak terlihat

pengguna685761
sumber