एक्सेल VBA रेंज ऑब्जेक्ट

⚡ स्मार्ट सारांश

Excel VBA में रेंज ऑब्जेक्ट वर्कशीट पर एक सेल या सेलों के समूह को दर्शाता है। यह पृष्ठ ऑब्जेक्ट पदानुक्रम, रेंज और सेल्स प्रॉपर्टीज़, सेलों का चयन और संदर्भ, मानों को पढ़ना और लिखना, और ऑफ़सेट प्रॉपर्टी के बारे में बताता है।

  • 🎯 परिभाषा: रेंज ऑब्जेक्ट किसी एक सेल, पंक्ति, स्तंभ, चयन या 3-डी रेंज को इंगित करता है।
  • 🧬 पदानुक्रम: एक पूर्ण रूप से योग्य संदर्भ में आवेदन, कार्यपुस्तिकाएँ, कार्यपत्रक, फिर श्रेणी लिखी जाती है।
  • गुणधर्म एवं विधियाँ: एक प्रॉपर्टी ऑब्जेक्ट के बारे में जानकारी संग्रहीत करती है, और एक मेथड सेलेक्ट या मर्ज जैसी क्रिया करती है।
  • 🔢 कोशिकाओं का गुणधर्म: Cells(Row, Column) एक सेल को संख्या द्वारा संबोधित करता है, जो एक प्रोग्रामिंग लूप के लिए उपयुक्त है।
  • ✍️ पढ़ने और लिखने: Value प्रॉपर्टी सेल की सामग्री को पुनः प्राप्त करती है और उसमें नई सामग्री लिखती है।
  • ऑफसेट प्रॉपर्टी: ऑफसेट किसी संदर्भ को उसके प्रारंभिक सेल से निश्चित संख्या में पंक्तियों और स्तंभों तक स्थानांतरित करता है।

एक्सेल VBA रेंज ऑब्जेक्ट

VBA रेंज क्या है?

VBA रेंज ऑब्जेक्ट आपके एक्सेल वर्कशीट में एक सेल या कई सेल का प्रतिनिधित्व करता है। यह एक्सेल VBA का सबसे महत्वपूर्ण ऑब्जेक्ट है। एक्सेल VBA रेंज ऑब्जेक्ट का उपयोग करके, आप निम्न का संदर्भ ले सकते हैं,

  • एकल कोशिका
  • कोशिकाओं की एक पंक्ति या स्तंभ
  • कोशिकाओं का चयन
  • 3-डी रेंज

जैसा कि हमने अपने पिछले ट्यूटोरियल में चर्चा की थी, VBA का उपयोग रिकॉर्ड करने और चलाने के लिए किया जाता है। मैक्रोलेकिन VBA यह कैसे पहचानता है कि शीट पर किस डेटा पर काम करने की आवश्यकता है? यहीं पर VBA रेंज ऑब्जेक्ट उपयोगी होते हैं।

VBA में ऑब्जेक्ट को संदर्भित करने का परिचय

एक्सेल के VBA रेंज ऑब्जेक्ट और ऑब्जेक्ट क्वालीफायर का संदर्भ देना।

  • ऑब्जेक्ट क्वालीफायर: इसका उपयोग ऑब्जेक्ट को संदर्भित करने के लिए किया जाता है। यह उस कार्यपुस्तिका या कार्यपत्रक को निर्दिष्ट करता है जिसका आप संदर्भ दे रहे हैं।

इन सेल मानों में हेरफेर करने के लिए, गुण और तरीके उपयोग किया जाता है।

  • संपत्ति: एक प्रॉपर्टी ऑब्जेक्ट के बारे में जानकारी संग्रहीत करती है।
  • विधि: विधि उस ऑब्जेक्ट की क्रिया है जिसे वह निष्पादित करेगा। रेंज ऑब्जेक्ट चयनित, कॉपी, साफ़, सॉर्ट आदि जैसी क्रियाएँ कर सकता है।

VBA एक्सेल में किसी ऑब्जेक्ट को संदर्भित करने के लिए ऑब्जेक्ट पदानुक्रम पैटर्न का पालन करता है। आपको नीचे दी गई संरचना का अनुसरण करना होगा। ध्यान रखें, यहाँ डॉट (.dot) विभिन्न स्तरों पर ऑब्जेक्ट को जोड़ता है।

अनुप्रयोग.कार्यपुस्तिकाएँ.कार्यपत्रक.श्रेणी

उस पदानुक्रम तक दो अलग-अलग गुणों के माध्यम से पहुंचा जा सकता है, और रेंज गुण का उपयोग सबसे अधिक बार किया जाता है।

रेंज प्रॉपर्टी का उपयोग करके Excel VBA रेंज ऑब्जेक्ट को कैसे संदर्भित करें

रेंज गुण दो अलग-अलग प्रकार की वस्तुओं में लागू किया जा सकता है।

  • वर्कशीट ऑब्जेक्ट्स
  • रेंज ऑब्जेक्ट्स

रेंज प्रॉपर्टी के लिए सिंटैक्स

  1. कीवर्ड “रेंज।”
  2. कीवर्ड के बाद आने वाले कोष्ठक
  3. प्रासंगिक सेल रेंज
  4. उद्धरण (" ")
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1")

जब आप Range ऑब्जेक्ट को संदर्भित करते हैं, जैसा कि ऊपर दिखाया गया है, इसे इस रूप में संदर्भित किया जाता है पूर्णतः योग्य संदर्भआपने एक्सेल को स्पष्ट रूप से बता दिया है कि आपको कौन सी रेंज चाहिए, कौन सी शीट और किस वर्कशीट में चाहिए।

उदाहरण: संदेशBox वर्कशीट्स(“शीट1”).रेंज(“ए1”).वैल्यू

रेंज प्रॉपर्टी का उपयोग करके आप कई कार्य कर सकते हैं जैसे,

  • रेंज प्रॉपर्टी का उपयोग करके एकल सेल का संदर्भ लें
  • Worksheet.Range प्रॉपर्टी का उपयोग करके एकल सेल को संदर्भित करें
  • संपूर्ण पंक्ति या कॉलम का संदर्भ लें
  • Worksheet.Range प्रॉपर्टी का उपयोग करके मर्ज किए गए सेल देखें और बहुत कुछ

इस प्रकार, रेंज प्रॉपर्टी के लिए सभी परिदृश्यों को कवर करना बहुत लंबा होगा। ऊपर वर्णित परिदृश्यों के लिए, हम केवल एक के लिए एक उदाहरण प्रदर्शित करेंगे। रेंज प्रॉपर्टी का उपयोग करके एकल सेल देखें।

Worksheet.Range प्रॉपर्टी का उपयोग करके एकल सेल को संदर्भित करें

किसी एक सेल को संदर्भित करने के लिए, उसका पता टेक्स्ट स्ट्रिंग के रूप में Range प्रॉपर्टी को पास करें।

वाक्यविन्यास सरल है “रेंज(“सेल”)”।

यहां, हम शीट से एकल सेल का चयन करने के लिए “.Select” कमांड का उपयोग करेंगे।

चरण 1) इस चरण में, अपनी एक्सेल फ़ाइल खोलें।

Worksheet.Range प्रॉपर्टी का उपयोग करके एकल कक्ष

चरण 2) इस चरण में,

  • पर क्लिक करें Worksheet.Range प्रॉपर्टी का उपयोग करके एकल कक्ष बटन.
  • इससे एक विंडो खुल जाएगी.
  • यहां अपना प्रोग्राम नाम दर्ज करें और 'ओके' बटन पर क्लिक करें।
  • यह आपको मुख्य एक्सेल फ़ाइल पर ले जाएगा, शीर्ष मेनू से मैक्रो रिकॉर्डिंग रोकने के लिए 'स्टॉप' रिकॉर्ड बटन पर क्लिक करें।

Worksheet.Range प्रॉपर्टी का उपयोग करके एकल कक्ष

चरण 3) अगले चरण में,

  • मैक्रो बटन पर क्लिक करें Worksheet.Range प्रॉपर्टी का उपयोग करके एकल कक्ष शीर्ष मेनू से। यह नीचे की विंडो खोल देगा।
  • इस विंडो में, 'संपादन' बटन पर क्लिक करें।

Worksheet.Range प्रॉपर्टी का उपयोग करके एकल कक्ष

चरण 4) उपरोक्त चरण से "सिंगल सेल रेंज" नामक फ़ाइल के लिए VBA कोड एडिटर खुल जाएगा। एक्सेल शीट से "A1" रेंज का चयन करने के लिए नीचे दिखाए गए अनुसार कोड दर्ज करें।

Sub SingleCellRange()
    Range("A1").Select
End Sub

Worksheet.Range प्रॉपर्टी का उपयोग करके एकल कक्ष

चरण 5) अब फ़ाइल को सेव करें Worksheet.Range प्रॉपर्टी का उपयोग करके एकल कक्ष और नीचे दिखाए अनुसार प्रोग्राम चलाएँ।

Worksheet.Range प्रॉपर्टी का उपयोग करके एकल कक्ष

चरण 6) आप देखेंगे कि प्रोग्राम के निष्पादन के बाद सेल “A1” चयनित है।

Worksheet.Range प्रॉपर्टी का उपयोग करके एकल कक्ष

इसी प्रकार, आप किसी विशिष्ट नाम वाले सेल का चयन कर सकते हैं। उदाहरण के लिए, यदि आप “नाम वाले सेल को खोजना चाहते हैंGuru99- VBA ट्यूटोरियल”। आपको नीचे दिखाए गए अनुसार कमांड चलाना होगा। यह उस नाम वाले सेल का चयन करेगा।

श्रेणी("Guru99- वीबीए ट्यूटोरियल”).चयन करें

अन्य रेंज ऑब्जेक्ट को लागू करने के लिए यहां कोड नमूना है।

एक्सेल में सेल का चयन करने के लिए रेंज घोषित सीमा
एकल पंक्ति के लिए रेंज(“1:1”)
एकल कॉलम के लिए रेंज (“ए:ए”)
सन्निहित कोशिकाओं के लिए रेंज(“A1:C5”)
असंलग्न कोशिकाओं के लिए रेंज(“A1:C5, F1:F5”)
दो श्रेणियों के प्रतिच्छेदन के लिए रेंज(“A1:C5 F1:F5”)
(प्रतिच्छेदन सेल के लिए, याद रखें कि कोई अल्पविराम ऑपरेटर नहीं है)
सेल को मर्ज करने के लिए रेंज(“A1:C5”)
(सेल को मर्ज करने के लिए “merge” कमांड का उपयोग करें)

किसी सेल का चयन करना केवल पहला कदम है। व्यवहार में, मैक्रो सेल में मौजूद डेटा को पढ़ता है और एक नया मान वापस लिखता है।

Range ऑब्जेक्ट के साथ मानों को कैसे पढ़ें और लिखें

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

Sub ReadAndWrite()
    Dim Price As Double
    Dim Qty As Long

    ' Read two values out of the sheet
    Price = Range("B1").Value
    Qty = Range("B2").Value

    ' Write the calculated result back
    Range("B3").Value = Price * Qty

    ' Fill a whole block in one statement
    Range("D1:D10").Value = "Guru99"

    ' Clear only the contents, keeping the formatting
    Range("F1:F10").ClearContents
End Sub

चार बिंदु इस पैटर्न को विश्वसनीय बनाते हैं।

  • चयन करना आवश्यक नहीं है: लेखन Range(“B3”).Value = 10 यह सेल को पहले चुनने की तुलना में तेज़ और सुरक्षित है। रिकॉर्ड किए गए मैक्रो में .Select का भरपूर उपयोग होता है क्योंकि रिकॉर्डर माउस क्रियाओं को प्रतिबिंबित करता है, न कि इसलिए कि कोड को इसकी आवश्यकता है।
  • मूल्य बनाम पाठ: .Value अंतर्निहित डेटा लौटाता है, जबकि .Text स्क्रीन पर प्रदर्शित स्वरूपित स्ट्रिंग लौटाता है, जिसे कॉलम की चौड़ाई के अनुसार छोटा किया जा सकता है। गणनाओं में .Value पढ़ें।
  • एक ही पंक्ति में पूरे ब्लॉक: किसी मल्टी-सेल रेंज को असाइन करने से हर सेल एक साथ भर जाता है, जो लू की तुलना में कहीं अधिक तेज़ है।ping.
  • सही बात स्पष्ट करें: ClearContents केवल मानों को हटाता है, Clear फॉर्मेटिंग को भी हटाता है, और Delete सेल को हटाता है और उनके आसपास के सेल को स्थानांतरित करता है।

रेंज प्रॉपर्टी किसी सेल को उसके अक्षर और संख्या से संबोधित करती है। दूसरी प्रॉपर्टी उसी सेल को दो संख्याओं से संबोधित करती है।

सेल संपत्ति

इसी प्रकार, रेंज में VBA आप "सेल प्रॉपर्टी" का भी उपयोग कर सकते हैं। अंतर केवल इतना है कि इसमें एक "आइटम" प्रॉपर्टी होती है जिसका उपयोग आप अपनी स्प्रेडशीट में मौजूद सेल्स को संदर्भित करने के लिए करते हैं। प्रोग्रामिंग लूप में सेल प्रॉपर्टी उपयोगी होती है।

उदाहरण के लिए,

Cells.item(Row, Column). नीचे दी गई दोनों पंक्तियाँ सेल A1 को संदर्भित करती हैं।

  • Cells.item(1,1) OR
  • सेल्स.आइटम(1,”ए”)

VBA में रेंज और सेल्स के बीच अंतर

रेंज और सेल्स अलग-अलग रास्तों से एक ही वर्कशीट सेल्स तक पहुंचते हैं, और सही चुनाव करने से कोड छोटा और पढ़ने में आसान हो जाता है।

अंतर का बिंदु रेंज कोशिकाओं
पता प्रारूप एक टेक्स्ट स्ट्रिंग, रेंज(“A1”) दो संख्याएँ, सेल(1, 1)
एकाधिक कोशिकाएँ हाँ, रेंज (“A1:C5”) एक बार में एक कोशिका
एक लूप के अंदर स्ट्रिंग संयोजन की आवश्यकता है पंक्ति संख्या लूप काउंटर हो सकती है
पठनीयता यह एक्सेल में दिखाई देने वाले पते से मेल खाता है। कॉलम 27 की कल्पना करना AA की तुलना में अधिक कठिन है।
संयुक्त उपयोग Range(Cells(1, 1), Cells(5, 3)) संख्याओं से A1:C5 का निर्माण करता है

व्यवहारिक नियम यह है कि एक निश्चित पते के लिए जिसे आप एक नज़र में पढ़ सकते हैं, Range का उपयोग करें, और Cells का उपयोग तब करें जब रन टाइम पर किसी पंक्ति या स्तंभ संख्या की गणना की जा रही हो।

रेंज ऑफ़सेट संपत्ति

रेंज ऑफ़सेट प्रॉपर्टी पंक्तियों/स्तंभों को उनकी मूल स्थिति से दूर चुनेगी। घोषित रेंज के आधार पर, सेल चुने जाते हैं। नीचे उदाहरण देखें।

उदाहरण के लिए,

Range("A1").Offset(RowOffset:=1, ColumnOffset:=1).Select

इसका परिणाम सेल B2 होगा। ऑफ़सेट प्रॉपर्टी सेल A1 को 1 कॉलम और 1 पंक्ति आगे खिसका देगी। आप आवश्यकतानुसार RowOffset / ColumnOffset का मान बदल सकते हैं। सेल को पीछे खिसकाने के लिए आप ऋणात्मक मान (-1) का उपयोग कर सकते हैं।

उपरोक्त कोड युक्त Excel डाउनलोड करें

ऊपर दी गई एक्सेल फ़ाइल डाउनलोड करें Code

अक्सर पूछे जाने वाले प्रश्न

Cells(Rows.Count, 1).End(xlUp).Row का उपयोग करें। यह कॉलम A के निचले भाग से शुरू होता है और डेटा वाले अंतिम सेल तक ऊपर की ओर जाता है, जो पंक्तियों को हटाए जाने के बाद UsedRange की तुलना में अधिक विश्वसनीय है।

प्रत्येक रीड या राइट ऑपरेशन VBA और Excel के बीच होता है। एक ही असाइनमेंट के साथ रेंज को एक ऐरे में लोड करें, मेमोरी में ऐरे को प्रोसेस करें, और फिर उसे एक ही स्टेटमेंट में वापस लिखें। स्क्रीन अपडेटिंग को बंद करने से भी मदद मिलती है।

आमतौर पर यह त्रुटि अमान्य पते, किसी ऐसी शीट के नाम जो मौजूद नहीं है, या किसी निष्क्रिय वर्कशीट पर रेंज का चयन करने के प्रयास के कारण होती है। संदर्भ में शीट का नाम जोड़ें, या पहले शीट को सक्रिय करें।

जी हां। रिकॉर्ड किया गया कोड पेस्ट करें और एक एआई सहायक प्रत्येक 'चयन' और 'चयन' जोड़ी को एक प्रत्यक्ष, पूर्ण रूप से योग्य 'रेंज' संदर्भ से बदल देगा। दोनों संस्करणों को एक प्रतिलिपि पर चलाएं और शीट को सहेजने से पहले उसकी तुलना करें।ping बदलाव।

जी हां। लक्ष्य का वर्णन करें, जैसे कि डेटा शीट पर कॉलम A से D तक की सभी भरी हुई पंक्तियाँ, और एक AI सहायक मिलान करने वाला रेंज एक्सप्रेशन लौटा देगा। लाइव डेटा पर चलाने से पहले इसे एक छोटे नमूने के साथ सत्यापित करें।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: