VBA का उपयोग करके Excel 2016 में मानों को कॉपी और पेस्ट करना


0

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

उदाहरण:

यहां छवि विवरण दर्ज करें

उपरोक्त फ़ंक्शन में यदि सेल B3 और C3 में मान समान हैं, तो सेल E3 में सूत्र को फ़ंक्शन "Myfunction ()" को कॉल करना चाहिए, इस फ़ंक्शन को सेल D3 में सेल F3 में राशि की प्रतिलिपि बनाना चाहिए, और हमें सेल का चयन करने में सक्षम होना चाहिए कॉपी करने के लिए (myfunction (डी 3) डी ३ अलग हो सकता है यह ई ३ या एफ ३ आदि हो सकता है)

मेरा कोड:


Dim c As Range
Function myfunction(c)
myfunction = c.Select
Selection.Copy
Range("c" + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Function

"ग" चर होना चाहिए।


2
मुझे समझ में नहीं आता है कि आप जो मांग रहे हैं उसे पूरा करने के लिए एक फ़ंक्शन क्यों चाहते हैं। =IF(B3=C3,B3+C3,"")सेल F3 में यह कोशिश करें । क्या यह "तरह" आपकी समस्या को हल करता है?
प्रसन्ना

HI प्रसन्ना, आपके उत्तर के लिए धन्यवाद, वास्तव में मेरी समस्या मेरे द्वारा पूछे गए सवाल से कहीं अधिक बड़ी है, मैं एक योजनाकार हूं और मेरी परियोजना में गतिविधियों के "पूर्व-सेट" कार्यक्रम पर काम करना शामिल है, इसके लिए प्रत्येक गतिविधि में परिवर्तन के लिए निर्धारित मात्रा है। प्रत्येक घंटे एक निश्चित दर से, एक बार मात्रा के बराबर होने पर हमें प्रत्येक गतिविधि को खोजना और फ़िल्टर करना होगा जो 100% है और फिर मानों को मैन्युअल रूप से चिपकाएँ, अन्यथा अगले घंटे पूरा होने वाला प्रतिशत 100% से अधिक हो जाएगा, इसके लिए एक मैक्रो काम कर सकते हैं, लेकिन फिर से सीमा तय हो जाएगी, मैं सिर्फ एक सूत्र लिखना चाहता था जो प्रकृति में गतिशील हो।
असद खान

जवाबों:


1

और उन्हें उस सेल के ठीक बगल में सेल में चिपकाएँ जिसमें फ़ंक्शन कहा जाता है।

यह संभव नहीं है, वर्कशीट में एक सूत्र से बुलाए गए VBA फ़ंक्शन को वर्कशीट में किसी अन्य सेल तक पहुंच नहीं है।


कस्टम फ़ंक्शंस को वर्कशीट में किसी फॉर्मूले के मान के बदले या किसी अन्य VBA मैक्रो या फ़ंक्शन में उपयोग की गई अभिव्यक्ति के अलावा कुछ भी करने की अनुमति नहीं है। उदाहरण के लिए, कस्टम फ़ंक्शन विंडोज़ का आकार नहीं बदल सकते; सेल में एक सूत्र को संपादित करें; या सेल में पाठ के लिए फ़ॉन्ट, रंग, या पैटर्न विकल्प बदलें। यदि आप एक फ़ंक्शन प्रक्रिया में इस तरह का "एक्शन" कोड शामिल करते हैं, तो फ़ंक्शन #VALUE! त्रुटि।

से माइक्रोसॉफ्ट एक्सेल यूडीएफ गाइड


0

Máté Juhász द्वारा नोट के अनुसार, कस्टम सूत्र अन्य कक्षों को परिवर्तित नहीं कर सकते हैं। ऐसा करने का प्रयास करने पर #VALUE वापस आ जाएगा ! सूत्र में त्रुटि कक्ष में रहती है।

पहले भाग के बारे में (यादृच्छिक सेल अर्थात डी 3 के मूल्य तक पहुँच), आप केवल स्रोत सेल रेंज चर का मान लौटा सकते हैं :

Function MyFunction(SourceCell As Range)
    MyFunction = SourceCell.Value
End Function

यह आपके मूल सूत्र में उपयोग किया जा सकता है =IF(C3=B3,myfunction(D3),""), उस सूत्र को सीधे उदाहरण के लिए F3 में रखा जा सकता है। यह भी F3 के मूल्य को बदलकर जैसे E3 में इस्तेमाल किया जा सकता है =E3

आप (स्पष्ट रूप से) एक सेल तक सीमित नहीं हैं - यदि आप सूत्र में ही जन्मजात तुलना करना चाहते हैं, तो आप उपयोग कर सकते हैं =myfunction(B3, C3, D3)जहां फ़ंक्शन कुछ इस तरह दिख सकता है:

Dim ReturnValue As Variant

Function MyFunction(FirstCell As Range, SecondCell As Range, SourceCell As Range)

    If FirstCell.Value = SecondCell.Value Then
        'If our source is empty, return an error
        If SourceCell.Value = "" Then
            ReturnValue = "Empty Source"
        Else
            ReturnValue = SourceCell.Value
        End If
    Else
        'Our input cells aren't equal
        ReturnValue = "Not Equal"
    End If

    'Return our final value to the cell
    MyFunction = ReturnValue

End Function

1
हाय अन्कसुमन, आपके उत्तर के लिए धन्यवाद, वास्तव में मेरी परियोजना में गतिविधियों के "पूर्व-सेट" पर काम करना शामिल है, इसके लिए प्रत्येक गतिविधि को परिभाषित मात्रा प्रत्येक घंटे में एक निश्चित दर से बदलती है, एक बार मात्रा के बराबर होती है जिसे हमें खोजना होगा और प्रत्येक गतिविधि को फ़िल्टर करें जो 100% है और फिर मानों को मैन्युअल रूप से पेस्ट करें, अन्यथा अगले घंटे पूरा होने वाला प्रतिशत 100% से अधिक हो जाएगा, इसके लिए एक मैक्रो काम कर सकता है लेकिन फिर से सीमा तय हो जाएगी, मैं सिर्फ एक सूत्र लिखना चाहता था यह प्रकृति में गतिशील है। लेकिन "अब" मुझे पता है कि यूडीएफ कोशिकाओं को संशोधित नहीं कर सकता है।
असद खान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.