मैं एक फंक्शन बनाने की कोशिश कर रहा हूं (जिसका नाम CreateRowRange) है, जो "$ A $ 5" के रूप में एक स्ट्रिंग लेगा और "A5: M5" फॉर्म वाले स्ट्रिंग का उत्पादन करेगा। इसी तरह, अगर मैं फ़ंक्शन को "$ A $ 14" के साथ कहता हूं, तो यह "A14: M14" लौटाएगा। मेरे पास "एम" के माध्यम से कॉलम "ए" में डेटा के साथ एक एक्सेल स्प्रेडशीट है। मुझे स्टैक ओवरफ्लो ( स्ट्रिंग में वैरिएबल में परिवर्तन करने के लिए VBA में एक सीमा पर सेट किया जाना है)), लेकिन यह अत्यधिक जटिल लगता है। फ़ंक्शन के लिए इस प्रकार लिखा कोड है:

Function CreateRowRange(CellAddress) As String
    CreateRowRange = Range(CellAddress).Row
End Function
1
Techie2015 18 नवम्बर 2015, 21:41

3 जवाब

सबसे बढ़िया उत्तर

यह वह चाहिए जो आप चाहते हैं:

Function CreateRowRange(CellAddress) As String
    CreateRowRange = Range(Range(CellAddress),Range("M" & Range(CellAddress).Row)).Address(False,False)
End Function
3
Scott Craner 18 नवम्बर 2015, 18:44

ठीक है, यह कोशिश करो:

Function CreateRowRange(CellAddress as String) as String
    CreateRowRange = Replace(CellAddress, "$", "")
    CreateRowRange = CreateRowRange & ":" & Replace(CreateRowRange, "A", "M")
End Function
2
area9 18 नवम्बर 2015, 19:00

एक्सेल ने पहले से ही श्रेणियों को संशोधित करने के लिए गुणों और विधियों में बनाया है। यदि आप इसे उपयोग करने जा रहे हैं

Range(CreateRowRange("$A$14")).Value = "X"

तब आप उसी चीज को हासिल कर सकते हैं

Range("$A$14").Resize(1,13).Value = "X"

यदि आप एक सूत्र का निर्माण कर रहे हैं जैसे

ActiveCell.Formula = "=SUM(" & CreateRowRange("$A$14") & ")"

तब आप उसी चीज को हासिल कर सकते हैं

ActiveCell.Formula = "=SUM(" & Range("A14").Resize(1,13).Address(0,0) & ")"

0,0 भाग पते को सापेक्ष बनाता है - कोई डॉलर संकेत नहीं

0
Dick Kusleika 18 नवम्बर 2015, 19:02