2011-07-12 11 views
41

मेरे पास एक विशाल एक्सेल 2003 स्प्रेडशीट है जिस पर मैं काम कर रहा हूं। बहुत सारे सेल संदर्भों के साथ बहुत सारे बड़े सूत्र हैं। यहां एक साधारण उदाहरण है।कॉपी/पेस्ट के बाद एक्सेल के स्वचालित सेल संदर्भ परिवर्तन को अक्षम करें

='Sheet'!AC69+'Sheet'!AC52+'Sheet'!AC53)*$D$3+'Sheet'!AC49 

उनमें से अधिकतर उससे अधिक जटिल हैं, लेकिन यह एक अच्छा विचार देता है कि मैं किसके साथ काम कर रहा हूं। इनमें से कुछ सेल संदर्भ पूर्ण ($ s) हैं। मैं सेल संदर्भों को बदलने के बिना इन कोशिकाओं को एक अलग स्थान पर कॉपी करने में सक्षम होना चाहता हूं। मुझे पता है कि संदर्भों को पूर्ण करने के लिए मैं केवल एफ 4 का उपयोग कर सकता हूं, लेकिन बहुत सारे डेटा हैं और मुझे बाद में भरने की आवश्यकता हो सकती है। संदर्भों को पूर्ण किए बिना कॉपी-पेस्ट/भरने पर बदलने वाले सेल संदर्भ को अस्थायी रूप से अक्षम करने का कोई तरीका है?

संपादित करें: मुझे अभी पता चला है कि आप सेल सामग्री को फ़ॉर्मूला के बजाय टेक्स्ट के रूप में कॉपी करके VBA के साथ ऐसा कर सकते हैं। मैं ऐसा नहीं करना चाहता हूं हालांकि मैं पूरी पंक्तियों/स्तंभों को एक बार में कॉपी करना चाहता हूं। क्या कोई आसान समाधान है जो मुझे याद आ रहा है?

+0

शानदार सवाल! क्या वीबीए में एक लूप आपकी शेष समस्या को हल नहीं कर सकता है? –

उत्तर

50

हुआ है http://spreadsheetpage.com/index.php/tip/making_an_exact_copy_of_a_range_of_formulas_take_2 से जाँच करने के लिए के लिए फायदेमंद हो सकता है:

  1. सूत्र दृश्य मोड में एक्सेल रखो। यह करने के लिए सबसे आसान तरीका है प्रेस करने के लिए Ctrl + `(कि चरित्र एक है" पीछे की ओर apostrophe, "और एक ही कुंजी है कि ~ (टिल्ड) है पर आम तौर पर है।
  2. रेंज कॉपी करने के लिए का चयन करें।
  3. Ctrl दबाएं + सी
  4. प्रारंभ विंडोज नोटपैड
  5. प्रेस Ctrl + V को नोटपैड में नकल डेटा
  6. नोटपैड में, Ctrl + A Ctrl + C द्वारा पीछा पाठ
  7. सक्रिय एक्सेल कॉपी और ऊपरी सक्रिय करने के लिए अतीत बायां सेल जहां आप सूत्रों को पेस्ट करना चाहते हैं। और, सुनिश्चित करें कि जिस शीट को आप कॉपी कर रहे हैं वह फ़ॉर्मूला व्यू मोड में है।
  8. पेस्ट करने के लिए Ctrl + V दबाएं।
  9. फ़ॉर्मूला व्यू मोड से टॉगल करने के लिए Ctrl + `दबाएं।

नोट: पेस्ट कार्रवाई वापस एक्सेल में सही ढंग से काम नहीं करता है, संभावना है कि आप का उपयोग किया है कि एक्सेल के पाठ से कॉलम हाल ही में सुविधा रहे हैं, और एक्सेल याद है कि कैसे आप पिछले पार्स द्वारा सहायक बनने की कोशिश कर रहा है आपका डेटा। आपको कन्वर्ट टेक्स्ट को कॉलम विज़ार्ड में आग लगाना होगा। सीमित विकल्प चुनें और अगला क्लिक करें। टैब को छोड़कर सभी डेलीमीटर विकल्प चेकमार्क साफ़ करें।

या, http://spreadsheetpage.com/index.php/tip/making_an_exact_copy_of_a_range_of_formulas/ से:

If you're a VBA programmer, you can simply execute the following code: 
With Sheets("Sheet1") 
.Range("A11:D20").Formula = .Range("A1:D10").Formula 
End With 
+0

ऐसा लगता है कि आप एक शीट में पेस्ट कर सकते हैं जो फ़ॉर्मूला व्यू मोड में नहीं है; यह इस पत्र का पालन करने के लिए चोट नहीं पहुंचाता है, हालांकि बाकी सब कुछ सख्ती से जरूरी है। +1 क्योंकि यह बहुत उपयोगी और अनुसरण करने में आसान था। मुझे नहीं लगता कि एक्सेल मानता है कि हम किसी अन्य फ़ाइल में किसी सेल को संदर्भित करना चाहते हैं, लेकिन कम से कम एक अच्छा काम है। – ZeroK

+3

यह उत्तर अद्भुत है - काश मैं इसे मूल पोस्टर के लिए स्वीकार कर सकता हूं। मैं एक प्रोग्रामर हूं इसलिए वीबीए मुझे डराता नहीं है, लेकिन मैं इसे कुछ सेल्स कॉपी और पेस्ट करने के लिए उपयोग नहीं कर रहा हूं अगर मैं इससे बच सकता हूं ... वास्तव में "फॉर्मूला अपडेट किए बिना पेस्ट" विकल्प बनाना चाहिए एक्सेल में – JPhi1618

+1

धन्यवाद, धन्यवाद, धन्यवाद। :) – Tamer

0

मुझे लगता है कि आप अपने संपादन में उल्लिखित कार्यवाही से फंस गए हैं।

मैं इस तरह मोटे तौर पर पाठ को पत्रक पर हर सूत्र परिवर्तित करके शुरू होगा:

Dim r As Range 

For Each r In Worksheets("Sheet1").UsedRange 
    If (Left$(r.Formula, 1) = "=") Then 
     r.Formula = "'ZZZ" & r.Formula 
    End If 
Next r 

जहां 'ZZZ' का उपयोग करता है किसी पाठ मान सूचित करने के लिए और ZZZ है कि हम जब लिए देख सकते हैं एक मूल्य के रूप में हम पाठ को वापस फॉर्मूला में परिवर्तित करना चाहते हैं। जाहिर है अगर अपनी कोशिकाओं के किसी भी वास्तव में पाठ के साथ शुरू ZZZ तो ZZZ मूल्य VBA मैक्रो में कुछ और करने के लिए बदल

जब फिर से व्यवस्था के पूरा हो गया है, मैं तो पाठ वापस इस तरह एक सूत्र में बदलने का होगा:

For Each r In Worksheets("Sheet1").UsedRange 
    If (Left$(r.Formula, 3) = "ZZZ") Then 
     r.Formula = Mid$(r.Formula, 4) 
    End If 
Next r 

इस विधि का एक वास्तविक नकारात्मक पक्ष यह है कि आप पुन: व्यवस्थित करते समय किसी सूत्र के परिणाम नहीं देख सकते हैं। आप पाते हैं कि जब आप टेक्स्ट से फॉर्मूला में वापस कनवर्ट करते हैं, तो उदाहरण के लिए आपके पास #REF त्रुटियां हैं।

यह चरणों में इस पर काम करते हैं और सूत्रों हर बार वापस करने के लिए परिवर्तित कि कोई आपदाओं

22

एक बहुत ही सरल समाधान रेंज आप कॉपी करना चाहते का चयन करने के लिए है, तो पता लगाएं और (Ctrl + h) बदलें, एक और प्रतीक है कि अपने सूत्र में नहीं किया जाता है करने के लिए = बदलते (उदाहरण के लिए #) - इस प्रकार इसे सक्रिय सूत्र होने से रोकना।

फिर, कॉपी करें और नए स्थान है करने के लिए चयनित श्रेणी पेस्ट करें।

अंत में, मूल और नई श्रृंखला दोनों में = को बदलने के लिए खोजें और बदलें, इस प्रकार दोनों श्रेणियों को फिर से सूत्रों के रूप में बहाल करना।

+3

अब तक, दुख की बात है, यह वह समाधान है जिसके साथ मैं सबसे अधिक संतुष्ट हूं। यह एक वैकल्पिक शॉर्टकट के साथ सुविधाजनक होगा जो बस यह करता था। –

5

मैं इस साइट कक्ष संदर्भ बदले बिना कॉपी करने के लिए एक आसान तरीका की तलाश में आया था। लेकिन अब मैं अपने स्वयं के कामकाज को इन तरीकों से अधिक सरल है। मेरी विधि इस तथ्य पर निर्भर करती है कि प्रतिलिपि संदर्भों की प्रतिलिपि बनाएँ लेकिन हल नहीं करता है। यहां एक साधारण उदाहरण है।

मान लें कि आपके पास कॉलम ए और बी में कच्चा डेटा है, और सी (उदाहरण के लिए सी = ए + बी) में एक सूत्र है और आप कॉलम एफ में एक ही सूत्र चाहते हैं लेकिन सी से एफ तक की प्रतिलिपि एफ = डी + ई की ओर ले जाती है ।

  1. किसी भी खाली अस्थायी स्तंभ के लिए सी की प्रति सामग्री, का कहना है कि आर सापेक्ष संदर्भ आर = पी + Q को बदल सकता है लेकिन इस पर ध्यान न दें तो भी यह एक त्रुटि के रूप में चिह्नित है जाएगा।
  2. सी पर वापस जाएं और इसे कॉपी करें (प्रतिलिपि नहीं) इसे एफ फॉर्मूला को अपरिवर्तित किया जाना चाहिए ताकि एफ = ए + बी।
  3. अब आर के पास जाकर सी सापेक्ष संदर्भ के लिए इसे वापस कॉपी सी = ए + बी
  4. आर में अस्थायी सूत्र हटाएँ
  5. बॉब अपने चाचा पर लौट जाएगा।

मैंने इसे कोशिकाओं की एक श्रृंखला के साथ किया है, इसलिए मुझे लगता है कि यह लगभग किसी भी स्तर की जटिलता के साथ काम करेगा। आपको कोयलेड कोशिकाओं को पार्क करने के लिए बस एक खाली क्षेत्र की आवश्यकता है। और निश्चित रूप से आपको याद रखना होगा कि आपने उन्हें कहाँ छोड़ा था।

+0

विवरण है सरल :) नहीं आप पंक्ति 1 कॉपी करना चाहते हैं (जो संदर्भ पंक्ति 2) 11 पंक्ति है, तो: 1. कॉपी यह 11 पंक्ति, तो यह दर्शाएंगे पंक्ति 12. 2. कट और इसे पंक्ति 21 पर पेस्ट करें, फिर भी यह पंक्ति 12 का संदर्भ देगा। 3. इसे 21 से 11 तक कॉपी करें, फिर यह आवश्यकतानुसार पंक्ति 2 के संदर्भ में होगा। – alexkovelsky

+0

यह मेरे लिए आसान लगता है, ऑफसेट पर कॉपी करें, मूल स्थानांतरित करें, ऑफसेट को कॉपी करें, ऑफ़सेट हटाएं। – will

+0

सरल और काम करता है, +1 – davidhigh

0

Excel में जाँच नहीं की है, लेकिन इस Libreoffice4 में काम करता है:

पता पुनर्लेखन की पूरी बात के दौरान आता है लगातार
(A1) में कटौती
(A2) पेस्ट

आप की जरूरत है कुछ के बीच में डालकर निरंतरता को बाधित करने के लिए:
(बी 1)
(बी 2) कुछ खाली कोशिकाओं (1 से अधिक) का चयन करें और उन्हें खींचें (स्थानांतरित करें)
(बी 3) पेस्ट

चरण (बी 2) जहां सेल है जो अपने आप को अद्यतन करने के लिए के बारे में ट्रैकिंग बंद हो जाता है। त्वरित और सरल

+0

मुझे लगता है कि यह उत्तर उचित नहीं है क्योंकि इसका परीक्षण भी नहीं किया गया है। – Fjodr

+0

Fjodr, मेरे पास एक्सेल नहीं है। क्या आप इसका परीक्षण कर सकते हैं? मैं इसे काम करने की उम्मीद करता हूं और यह सभी प्रस्तावित समाधानों में से सबसे आसान लगता है। सबसे अधिक वोट दिए गए जवाब में 9 कदम शामिल हैं! मेरा बहुत आसान है। कृपया इसे आजमाएं! – user1501439

0

इसे आजमाएं: पूरे शीट की एक प्रति बनाते हुए टैब पर बायाँ-क्लिक करें, फिर उन कक्षों को काट दें जिन्हें आप वही रखना चाहते हैं और उन्हें अपने मूल वर्कशीट में पेस्ट करें।

1

यह आसान चाल काम करता है: कॉपी और पेस्ट करें। कट और पेस्ट मत करो। पेस्ट करने के बाद, उसके द्वारा कॉपी किए गए भाग को संशोधित करें और संपादित करें, नीचे स्लाइड करें, और साफ़ सामग्री पर जाएं। 1. कट सामग्री 2. उन्हें नए स्थान 3. कॉपी सामग्री है कि आप बस नए स्थान आप चाहते हैं में चिपकाया में पेस्ट करें:

-1

मैं एक वैकल्पिक हल है कि बहुत सरल है पाया। 4. कट-पेस्ट ऑपरेशन को पूर्ववत करें, मूल सामग्री को वापस जहां आप उन्हें मिला। 5. क्लिपबोर्ड से सामग्री को उसी स्थान पर पेस्ट करें। इन सामग्रियों में मूल संदर्भ होंगे।

यह एक बहुत की तरह लग रहा है, लेकिन कीबोर्ड शॉर्टकट के साथ सुपर तेज है: 1. Ctrl-एक्स, 2. Ctrl-V, 3. Ctrl-सी, 4. Ctrl-Z, 5. Ctrl-V

0

प्रदर्शन करने के दौरान फॉर्मूला अक्षम करने के लिए ढूंढना/प्रतिस्थापित करना आम बात है। उदाहरण के लिए, ट्रांसपोज़र के साथ प्रतिलिपि बनाएँ। फ़ॉर्मूला कुछ प्लेसहोल्डर (उदा। "$ =") को इसके सामने रखकर अक्षम कर दिया गया है। एक बार हेरफेर पूरा होने के बाद प्रतिस्थापन पाएं।

यह VBA बस खोज को स्वचालित/सक्रिय पत्रक के लिए बदलें।

' toggle forumlas on active sheet as active/ inactive 
' by use of "$=" prefix 

Sub toggle_active_formulas() 
    Dim current_calc_method As String 
    initial_calc_method = Application.Calculation 
    Application.Calculation = xlCalculationManual 
    Dim predominant As Integer 
    Dim c As Range 
    For Each c In ActiveSheet.UsedRange.Cells 
     If c.HasFormula Then 
      predominant = predominant + 1 
     ElseIf "$=" = Left(c.Value, 2) Then 
      predominant = predominant - 1 
     End If 
    Next c 
    If predominant > 0 Then 
     For Each c In ActiveSheet.UsedRange.Cells 
      On Error Resume Next 
      If c.HasFormula Then 
       c.Value = "$" & c.Formula 
      End If 
     Next c 
    Else 
     For Each c In ActiveSheet.UsedRange.Cells 
      On Error Resume Next 
      If "$=" = Left(c.Value, 2) Then 
       c.Formula = Right(c.Value, Len(c.Value) - 1) 
      End If 
     Next c 
    End If 
    Application.Calculation = initial_calc_method 
End Sub 
+0

क्या आप इस पोस्ट में अधिक जानकारी जोड़ सकते हैं? – cdomination

-1

उस सेल पर क्लिक करें जिसे आप कॉपी करना चाहते हैं। सूत्र बार में, सूत्र को हाइलाइट करें।

प्रेस Ctrl C

एस्केप दबाएं (आप सक्रिय रूप से कि फ़ॉर्मूले को संपादित से बाहर ले करने के लिए)।

नया सेल चुनें। Ctrl V.

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