स्थूल का उपयोग कर F9 के बिना मूल्यों के साथ सेल संदर्भ बदलें


4

यह एक एक्सेल मैक्रो सवाल है। निम्नलिखित जैसे सूत्रों की एक श्रृंखला को देखते हुए:

= A1 + A2
= B2 + B2

आदि।, ...

मैं इनमें से प्रत्येक सेल संदर्भ को पूरे सेल को बदलने के बिना मूल्यों के साथ बदलना चाहूंगा।

= 1 + 2
= 3 + 4

इसे मैन्युअल रूप से करने का तरीका होगा कि हम सूत्र के भीतर प्रत्येक संदर्भ को हाइलाइट करें और F9मानों को संदर्भों को बदलने के लिए दबाएं । हालांकि, मुझे हजारों कोशिकाओं के लिए ऐसा करना होगा। क्या स्वचालित रूप से इसे पूरा करने के लिए एक मैक्रो है?

जवाबों:


2

निम्न मॉड्यूल एक सीमा लेता है और संदर्भित कोशिकाओं में पाए गए मानों के साथ सेल संदर्भों को बदलता है। का उपयोग करता है Range.Precedentsएक स्ट्रिंग को संदर्भित सेल पते पाने के लिए और Splitयह सेल पते की एक सरणी के लिए बदलने के लिए। इस सरणी का उपयोग लक्ष्य सेल के सूत्र में मिलान पाठ को खोजने और बदलने के लिए किया जाता है।

प्रयोग

  • विजुअल बेसिक एडिटर में पूरे कोड को एक मानक कोड मॉड्यूल में कॉपी करें।
  • के साथ सबरूटिन को बुलाओ Call ReplaceReferencesWithValues(yourRange)

Testमैक्रो उपनेमका चयनित श्रेणी में संदर्भ को बदलने के लिए कहता है।

कोड

Option Explicit


Sub Test()
    Call ReplaceReferencesWithValues(Selection)
End Sub


Sub ReplaceReferencesWithValues(rng As Range)
    Dim cl As Range
    Dim ws As Worksheet
    Dim strTemp As String
    Dim strRef() As String
    Dim intIndex As Integer

    For Each cl In rng
        Set ws = cl.Worksheet
        strTemp = cl.Formula
        strRef() = ReferenceArray(cl)

        For intIndex = LBound(strRef) To UBound(strRef)
            strTemp = Replace(strTemp, strRef(intIndex), _
                ws.Range(strRef(intIndex)).Value)
        Next

        cl.Formula = strTemp
    Next
End Sub


Function ReferenceArray(rngSource As Range) As Variant
    Dim rngRef As Range
    Dim strTemp As String
    On Error Resume Next

    For Each rngRef In rngSource.Precedents.Cells
        strTemp = strTemp & ", " & rngRef.Address(False, False)
    Next
    If Len(strTemp) > 0 Then strTemp = Mid(strTemp, 3)

    ReferenceArray = Split(strTemp, ", ")
End Function

चिंताओं

  • प्रतिस्थापन ऐसा होता है Stringऔर जैसे कि, यदि सूत्र में सेल "A1" और "A1" सहित अन्य पाठ का संदर्भ होगा, तो मिलान पाठ भी सेल "A1" के मान से प्रतिस्थापित किया जाएगा ।
  • फ़ार्मुलों को फ़ंक्शन करने के लिए एक सीमा की आवश्यकता होती है, जैसे कि SUM, यदि आप सेल मानों के साथ संदर्भों को बदलने का प्रयास करते हैं, तो यह टूट जाएगा।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.