2009-03-23 10 views
9

मैक्रो या अन्यथा के माध्यम से ऐसा करने का कोई आसान तरीका है? गणना क्षेत्र से मेरा मतलब है कि एक फ़ील्ड जिसे अन्य क्षेत्रों से गणना की जाती है, कच्चे दर्ज मूल्यों के विरुद्ध। हाइलाइट करके मेरा मतलब रंग अलग है। मुझे क्लाइंट से बड़ी स्प्रेडशीट को बेहतर ढंग से समझने के लिए इसकी आवश्यकता है।एक्सेल स्प्रेडशीट में गणना किए गए फ़ील्ड को हाइलाइट कैसे करें?

+0

इस विषय पर पिछले एक धागा हुई: http://stackoverflow.com/questions/61432/tool-for-deciphering-spreadsheets/61448 – Fionnuala

उत्तर

10

इसे मैन्युअल रूप से करने के लिए, GoTo संवाद लाने के लिए F5 कुंजी दबाएं। विशेष सेल बटन पर क्लिक करें। अगली स्क्रीन पर, फॉर्मूला का चयन करें (यह दाईं ओर एक विकल्प है)।

एक्सेल मिलान करने वाली सभी कोशिकाओं का चयन करेगा। अब यह सिर्फ प्रारूपण लागू करने का मामला है।

+0

यह काम करता है और सरल है ... किसी और द्वारा सुझाए गए मैक्रो-आधारित समाधान ने अभी नहीं किया काम – DSO

+0

और मुझे केवल एक बिंदु मिलता है, जबकि गैर-कार्य समाधान अधिक हो जाता है? –

0

आप सक्रिय कक्ष की पृष्ठभूमि का रंग बदलने के लिए Interior.ColorIndex संपत्ति का उपयोग कर सकते हैं:

Range("A1:A5").Interior.Color = RGB(200,160,35) 

यह Excel 2003 के लिए लागू होता है, मैं:

ActiveCell.Interior.ColorIndex = 36 

तुम भी एक श्रृंखला के लिए यह आवेदन कर सकते हैं नवीनतम संस्करण का उपयोग नहीं किया है, लेकिन मुझे संदेह है कि यह बदल गया है।

आप आमतौर पर एक मैक्रो रिकॉर्ड कर सकते हैं और फिर जेनरेट कोड देख सकते हैं कि कुछ कैसे किया जाता है।

1

सरल समाधान: Ctrl - `(बस टैब ऊपर कुंजी)

+2

यह केवल होगा सूत्रों को दिखाने के लिए दृश्य बदलें। सवाल ने इन क्षेत्रों के पृष्ठभूमि रंग को बदलने के लिए कहा। – AgentConundrum

+0

शानदार, सूत्रों को इनलाइन दिखाता है। रूट समस्या का सबसे अच्छा समाधान: 'मुझे क्लाइंट से बड़ी स्प्रेडशीट को बेहतर ढंग से समझने के लिए इसकी आवश्यकता है' –

4

मैं तुम्हें में सेल रंग सेट कर सकते हैं के बाद से, आप केवल सेल सूत्रों के बजाय VBA गणना के बारे में यहाँ बात कर रहे हैं ग्रहण करने के लिए जा रहा हूँ यदि आप इसे इस तरह से कर रहे हैं तो अपनी वीबीए प्रक्रिया।

ऐसा करने का तरीका यह है कि आप इसके साथ किए जाने के बाद सूत्र के लिए सेल को जांचें और उस बिंदु पर उसका रंग बदलें। प्रासंगिक घटना यहां बदलें है, और सेल के HasFormula संपत्ति आपको बताएगा कि सेल एक शाब्दिक मूल्य है, या गणना एक सूत्र से:

 
Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.HasFormula Then 
     Target.Interior.Color = vbRed 
    Else 
     ' remove background colour entirely (i.e. No Fill) 
     Target.Interior.ColorIndex = xlColorIndexNone 
    End If 
End Sub 
2

नीचे कोड होना चाहिए प्रत्येक शीट के माध्यम से चक्र, हर कोशिकाओं पर प्रकाश डाला है कि शुरू होता है एक '=' के साथ और इसे वांछित रंग रंग देता है (वर्तमान में रंग 36 जो हल्का पीला है)।

Sub HighLightFormulas() 
Dim objSheet As Worksheet 
Dim strOriginalSheet As String 
Dim intMaxBlankCells As Integer 
Dim intBlankColumns As Integer 
Dim intBlankRows As Integer 
Dim intCurrentColumn As Integer 
Dim intCurrentRow As Long 

intMaxBlankCells = 40 
strOriginalSheet = ActiveSheet.Name 

For Each objSheet In Worksheets 
    intBlankRows = 0 
    intCurrentRow = 1 
    intCurrentColumn = 1 

    Do While intCurrentRow <= 65536 And intBlankRows <= intMaxBlankCells 
     intBlankColumns = 0 
     intCurrentColumn = 1 

     Do While intCurrentColumn <= 256 And intBlankColumns <= intMaxBlankCells 
      If Left(objSheet.Cells(intCurrentRow, intCurrentColumn).Formula, 1) = '=' Then 
      objSheet.Cells(intCurrentRow, intCurrentColumn).Interior.ColorIndex = 36 
      End If 
      intCurrentColumn = intCurrentColumn + 1 
     Loop 

     If intCurrentColumn = intBlankColumns Then 
      intBlankRows = intBlankRows + 1 
     Else 
      intBlankRows = 0 
     End If 
     intCurrentRow = intCurrentRow + 1 
    Loop 
Next objSheet 
Worksheets(strOriginalSheet).Activate 

Call MsgBox("The Highlighting process has completed", vbOKOnly, "Process Complete") 

End Sub

यह भी 40 लगातार खाली कोशिकाओं के बाद (मुख्य तौर खाली शीट के सभी प्रसंस्करण से बचने के लिए) बंद हो जाएगा।

उम्मीद है कि इससे मदद मिलती है।

+0

एक्सेल वीबीए फॉर्मूला, हैसफॉर्मुला के लिए एक प्रॉपर्टी प्रदान करता है, जिसे आप = चरित्र की जांच करने के बजाय उपयोग कर सकते हैं। अन्यथा, यह पूर्व-मौजूदा फ़ील्ड पर रंग सेट करने के लिए अच्छा लगता है। मेरा जवाब केवल उन कोडों को शामिल करता है जिन्हें आप कोड के स्थान पर बदलते हैं। – AgentConundrum

+1

क्षमा करें बहुत तेज़ी से मतदान किया गया ... ऐसा लगता है कि मुझे क्या चाहिए लेकिन एक संकलन त्रुटि थी, और जब मैंने इसे ठीक किया और इसे चलाया, तो यह एक्सेल बंद कर दिया।वास्तव में इसके साथ मकसद करने का समय नहीं था, इसलिए मैंने छोड़ दिया, लेकिन किसी ने अभी एक गैर-प्रोग्रामेटिक समाधान दिया जो अभी काम करता है – DSO

3

एक्सेल एक "ट्रेस आश्रितों"

अपने डेटा वाली श्रेणी का चयन करें (जो आप गणना की कोशिकाओं को दिखाने के लिए तीर से पता चलता) की सुविधा में निर्माण किया है।
एक्सेल 2007 -> सूत्र -> ट्रेस आश्रित

0

मुझे क्रेग का कोड यहां पसंद आया, क्योंकि यह मौजूदा वर्कशीट का लेआउट रखता है और फिर भी दिखाता है कि क्या गणना की जाती है और 'एक नज़र में' नहीं है, लेकिन मैंने इसे थोड़ा सा काम किया है, इसलिए यह काम करने का बेहतर काम करता है चादरों के सक्रिय क्षेत्र से बाहर, और मैंने 'UnhighlightFormulas' subroutine जोड़ा ताकि कोई आसानी से स्वरूपण पूर्ववत कर सके (उदाहरण के लिए प्रिंटिंग से पहले)। यह Excel 2007 में परीक्षण किया गया है। ध्यान दें कि आप इसे चलाने पर किसी भी अन्य सेल पृष्ठभूमि रंग खो देंगे।

Option Explicit 
Public Sub HighlightFormulas() 
ColorFormulas (36) '36 is yellow 
End Sub 

Public Sub UnhighlightFormulas() 
ColorFormulas (-4142) '-4142 is default 
End Sub 

Private Sub ColorFormulas(intColor As Integer) 
Dim wshSheet As Worksheet 
Dim rngRange As Range 
Dim rngCell As Range 
For Each wshSheet In Worksheets 
    Set rngRange = RangeInUse(wshSheet) 
    If Not rngRange Is Nothing Then 
    For Each rngCell In rngRange 
     If Left(rngCell.Formula, 1) = "=" Then 
     If rngCell.Interior.ColorIndex <> intColor Then rngCell.Interior.ColorIndex = intColor 
     Else 
     If rngCell.Interior.ColorIndex <> -4142 Then rngCell.Interior.ColorIndex = -4142 '-4142 is default 
     End If 
    Next 
    End If 
Next 
End Sub 

Private Function RangeInUse(ws As Worksheet) As Range 
    Dim LastRow&, LastCol% 
' adapted from http://www.beyondtechnology.com/geeks012.shtml 
' Error-handling in case there is no data in worksheet 
    On Error Resume Next 
    With ws 
    LastRow& = .Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row 
    LastCol% = .Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column 
    End With 
    Set RangeInUse = ws.Range("A1", Cells(LastRow&, LastCol%)) 
End Function 
2

टीएलडीआर;

फॉर्मूला वाले सभी कक्षों को हाइलाइट करने के लिए फ़ॉर्मूला के साथ सशर्त स्वरूपण का उपयोग करें।

विवरण

एमएस ऑफ़िस 365 संस्करण में: 5.0.4667.1002, निम्न कार्य करता

  1. कक्षों की श्रेणी का चयन करें।
    • Case1: उपयोग Ctrl + Aसभी कोशिकाओं चयन करने के लिए।
    • केस 2: विशिष्ट श्रेणी का चयन करें।
  2. होम टैब, शैलियाँ अनुभाग पर जाएं, और सशर्त स्वरूपण> नया नियम चुनें।
  3. "नया स्वरूपण नियम" संवाद खुल जाएगा।
  4. चुनें "एक सूत्र का उपयोग निर्धारित करने के लिए जो कोशिकाओं को स्वरूपित करने"
  5. पाठ बॉक्स में, निम्न नियम जोड़ने: =IsFormula(A1)
    • Case1: आप सभी कक्षों का चयन किया है, A1 उपयोग करें, क्योंकि यह पहली बार है सेल।
    • केस 2: यदि आपने कोई विशिष्ट श्रेणी चुना है, तो अपनी सीमा में पहले सेल के साथ A1 को प्रतिस्थापित करें।
  6. स्वरूप क्लिक करें ...
  7. "प्रारूप प्रकोष्ठों" संवाद खुल जाएगा।
  8. वह प्रारूप चुनें जिसे आप लागू करना चाहते हैं। जैसे एक पीला पृष्ठभूमि।
  9. ठीक क्लिक करें।
  10. सभी कक्ष जिनमें सूत्र हैं, उदाहरण के लिए, एक पीले रंग की पृष्ठभूमि होगी।

स्क्रीनशॉट

You've created a new formatting rule!

+0

पूरी तरह से काम किया और मैं वही था जो मैं देख रहा था। – emragins

संबंधित मुद्दे