मैं सेल के फ़ॉन्ट को पारदर्शी कैसे बना सकता हूं?


18

मैं Excel के सशर्त स्वरूपण का उपयोग करके एक हीटमैप बना रहा हूं। मैं नहीं चाहता कि रंग की पृष्ठभूमि के खिलाफ कोशिका के मान दिखाए जाएं। क्या फ़ॉन्ट के स्वरूपण को पारदर्शी बनाने का एक तरीका है, जो कोशिका के भरण प्रारूपण में पाया जाता है?

चूंकि यह गर्मी का नक्शा है, इसलिए मैं एक रंग (जैसे सफेद) का उपयोग नहीं कर सकता हूं और मैं व्यक्तिगत रूप से प्रत्येक सेल की फ़ॉन्ट संपत्ति को उपयुक्त रंग में प्रारूपित नहीं करना चाहूंगा।

संपादित करें: स्पष्ट करने में मदद करने के लिए, गर्मी नक्शा सशर्त गठन> रंग स्केल> लाल-सफेद-नीला (जहां सफेद हल्के भूरे रंग में संशोधित किया गया था) का उपयोग करके रंगीन है, इसलिए सेल भरण मूल्य सीधे सेट नहीं किया जाता है, बल्कि यह एक परिकलित मान है एक रंग ढाल पर।

गर्मी के नक्शे

जवाबों:


29

मैंने एक ऐसा काम-आस-पास पाया है जो फ़ॉन्ट रंग नहीं बदलता है, लेकिन प्रभावी रूप से कक्षों से पाठ को हटा देता है। मान के साथ, कस्टम पर सेल नंबर प्रारूप समायोजित करें ;;;


ग्रेट कुछ भी इस तरह से काम करता है
Dev_Man

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। बस उस माउस का चयन करें जिस रेंज को आप संशोधित करना चाहते हैं और जिस मैक्रो को आप चलाना चाहते हैं उसे चुनें।


बहुत दिलचस्प दृष्टिकोण। मैंने इसे आजमाया और यह एक नॉरमली रूप से भरे हुए सेल में काम करता है (यानी जहां सेल प्रारूप को सीधे चुना जाता है)। दुर्भाग्य से, यह काम नहीं करता है जहां सेल रंग एक ढाल पर एक सशर्त प्रारूप है-फिर यह सिर्फ सफेद में बदलता है। कोई विचार?
डीएवी

यह बहुत बुरा है। इस StackOverflow पोस्ट में प्रतिक्रियाएँ एक दृष्टिकोण का सुझाव देती हैं। आज बाद में जांच करेंगे।
गंवार

धन्यवाद, अभी के लिए मैं अपने नंबर प्रारूप धोखा का उपयोग कर रहा हूं, लेकिन मैं बेहतर दीर्घकालिक समाधान प्राप्त करने के लिए आपके लिंक में संदर्भित VBA काम करने जा रहा हूं।
dav

स्वीकृत उत्तर को बदलने के बारे में खेद है, लेकिन वोट की असमानता के साथ यह उचित लगा। इसके अलावा, यह उस विधि से मेल खाता है जिसका मैं नियमित रूप से उपयोग करता हूं।
dav

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

आशा है कि यह किसी की मदद करता है, भले ही यह मूल प्रश्न के लिए तीन साल की देरी हो।


1

यह मेरा इसे करने का तरीका है।

.Cells (RowTo, ColHcpDiP) .Font.Color = .ells (RowTo, ColHcpDiP) .Interior.Color 'रंग अदृश्य सेट करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.