2014-09-16 5 views
7

उदाहरण के लिए, नीचे दिए गए कोड में, Item और Cells interchangeably उपयोग किया जा सकता है:रेंज.इटम और रेंज के बीच क्या अंतर है। कैल्स?

Range.Item Property (Excel)

रिटर्न:

Dim rRange As Range 
Set rRange = ThisWorkbook.ActiveSheet.Range("A1") 

With rRange 
    Debug.Print .Item(1, 1).Value ' Outputs value of "A1" 
    Debug.Print .Cells(1, 1).Value ' Outputs value of "A1" 

    Debug.Print .Item(2, 1).Value ' Outputs value of "A2" 
    Debug.Print .Cells(2, 1).Value ' Outputs value of "A2" 
End With 

डेवलपर संदर्भ में, वे के रूप में परिभाषित कर रहे हैं एक रेंज ऑब्जेक्ट जो ऑफ़सेट पर निर्दिष्ट सीमा तक एक श्रेणी का प्रतिनिधित्व करता है।

~

Range.Cells Property (Excel)

एक रेंज उद्देश्य यह है कि निर्दिष्ट श्रेणी में कोशिकाओं का प्रतिनिधित्व करता है देता है।

टिप्पणियां

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

कि टिप्पणी से, इसका मतलब यह है कि वास्तव में Cells(1, 1)Cells.Item(1, 1) के लिए एक छोटी है? इस प्रकार Cells(1, 1) वास्तव में Item(1, 1) के बराबर है? मैं क्या खो रहा हूँ?

उत्तर

5

इस को समझने के लिए सबसे अच्छा तरीका नीचे दिए गए उदाहरण

.Item और .Cells तो एक सीमा के संबंध में प्रयोग किया जाता है, हाँ, वे ही कर रहे हैं कर रहे हैं के माध्यम से है। उदाहरण

Sub Sample() 
    Dim rRange As Range 
    Set rRange = ThisWorkbook.ActiveSheet.Range("B1:C10") 

    With rRange 
     Debug.Print .Item(1, 3).Address '<~~ $D$1 
     Debug.Print .Cells(1, 3).Address '<~~ $D$1 
    End With 
End Sub 

में लिए ऊपर वे दोनों कि Range

जब Cells() एक सीमा की स्वतंत्र रूप से प्रयोग किया जाता है वे अलग हैं में सेल का पता चित्रित करते हैं।

Sub Sample() 
    Dim rRange As Range 
    Set rRange = ThisWorkbook.ActiveSheet.Range("B1:C10") 

    With rRange 
     Debug.Print .Item(1, 3).Address '<~~ $D$1 
     '~~> DOT before Cells missing 
     Debug.Print Cells(1, 3).Address '<~~ $C$1 
    End With 
End Sub 

ऊपर .Item में Range, जहां Cells रूप ActiveSheet

+0

भ्रम 'ThisWorkbook.ActiveSheet.Cells.Item में जोड़ने के लिए (1, 3) .Address' $ सी $ 1 है। मैं हमेशा 'आइटम' के बारे में सोचकर इसे सीधे रखने की कोशिश करता हूं क्योंकि हमेशा संग्रह का हिस्सा होता है, इसलिए 'ActiveSheet.Item (1, 3) 'मान्य नहीं है जबकि ActiveSheet.Cells.Item (1, 3)' है। – Jeeped

+0

सच है। '.Theem' का उपयोग एक श्रेणी वस्तु के साथ किया जाना चाहिए जबकि कोशिकाओं को स्वतंत्र रूप से भी उपयोग किया जा सकता है :) –

+1

बस स्पष्ट होने के लिए, आइटम किसी भी संग्रह में अच्छी तरह से "आइटम" के साथ उपयोग किया जा सकता है, केवल रेंज के लिए नहीं संग्रह। – Tim

0

में सेल का पता दर्शाया गया है मैं कोशिकाओं का कोई उपयोग नहीं संपत्ति की बात कर के लिए अन्य की तुलना में देख सकते हैं में सेल का पता दर्शाया गया है वर्कशीट में सभी कोशिकाओं के लिए। मैं इसे इस तरह रखूंगा, (मेरे प्रयोगों और शोध के आधार पर):

सेल प्रॉपर्टी ऑब्जेक्ट की सभी कोशिकाओं को एक रेंज ऑब्जेक्ट देता है जिसमें इसे लागू किया जाता है। वर्कशीट के मामले में यह स्पष्ट रूप से उपयोगी है ताकि संपूर्ण वर्कशीट पर रेंज ऑब्जेक्ट की सभी गुणों का उपयोग करने में सक्षम हो सके। रेंज ऑब्जेक्ट के मामले में मुझे यकीन नहीं है कि इसका कोई उपयोग है या नहीं।मैं नहीं मिल सकता है, उदाहरण के लिए, किसी भी अतिरिक्त संपत्ति है कि मैं रेंज ऑब्जेक्ट के गुणों से पहले कि रेंज वस्तु

अगर कोड में इसके उपयोग के कुछ बस " में crept है मैं सोच रहा हूँ के लिए कक्ष संपत्ति लागू किए बिना नहीं मिल सकता है " पिछले कुछ वर्षों में। उदाहरण के लिए, मेरा मानना ​​है कि इस प्रकार की कोड लाइन एक संभव है एक रेंज ऑब्जेक्ट आइटम प्रॉपर्टी Ws.Range ("A1") का उपयोग कर वर्कशीट में दूसरे सेल के रेंज ऑब्जेक्ट को संदर्भित करने का स्पष्ट तरीका। Areas.Item (1) .emem (1, 2) क्या विचारधाराओं की रेखाओं के साथ, मैं उस कोड लाइन को फिर से लिखने के लिए आइटम के पहले क्षेत्र और डिफ़ॉल्ट संपत्ति के निहित अंतर्निहित पर भरोसा कर सकता हूं: Ws.Range ("A1") (1, 2)

अगर मैं एक सेल संपत्ति में गिरावट, मैं कोई बुराई Ws.Range ("A1") कर कोशिकाओं (1, 2)

लेकिन मेरा सुझाव है:। _ (i) के उपयोग यहां सेल पूरी तरह से अनावश्यक है _ (ii) मैं अभी भी रेंज का उपयोग कर रहा हूं एम संपत्ति। _ (iii) कोई सेल आइटम नहीं है _ (iv) इस सेल (1, 2) जैसे कोड कोड में में क्रिप्ट "तथाकथित" सेल प्रॉपर्टी है जो एक या दो तर्क स्वीकार करेगा। ...... ".. और/या ..." कोशिकाओं में एक आइटम संपत्ति है ..। "... आदि ...,। मुझे लगता है कि वे बयान गलत हो सकते हैं। मुझे लगता है कि सेल संपत्ति में कोई तर्क नहीं है। (मुझे यह भी यकीन नहीं है कि सेल में आइटम प्रॉपर्टी हो सकती है। मैं कंप्यूटिंग पेशेवर नहीं हूं लेकिन विशेषज्ञों ने मुझे बताया है कि इंटेलिजेंस इसे पेश करता है, या माइक्रोसॉफ्ट हेल्प यह सुझाव देता है कि यह कोई गारंटी नहीं है कि यह मौजूद है। मुझे उम्मीद है कि कोई सेल आइटम नहीं है संपत्ति)

सभी मामलों में इस तरह के कोड भाग, सेल (1, 2), निम्नानुसार समझाया गया है: सेल एक रेंज ऑब्जेक्ट लौट रहा है। उस रेंज ऑब्जेक्ट में इसकी डिफ़ॉल्ट संपत्ति है, रेंज ऑब्जेक्ट आइटम प्रॉपर्टी इसके लिए लागू है। जब तक मैं एक रेंज में स्वतंत्र रूप से सेल का उपयोग नहीं कर रहा हूं, तो मुझे शायद इसे छोड़ देना चाहिए। मैं इस बारे में सुझाव देता हूं, इस मामले में, मैं स्पष्ट नहीं हूं। इसके बजाय मैं एक संभवतः झूठी, विचार में योगदान दे रहा हूं कि मैं _ .. _ के माध्यम से एक रेंज ऑब्जेक्ट का संदर्भ दे सकता हूं .. "सेल (_argument/s_) प्रकार" संपत्ति, .. जो संभवतः मौजूद नहीं है।

एलन

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