2011-07-26 34 views
5

में ऑब्जेक्ट का उपयोग करना मैं अपने शब्दकोश ऑब्जेक्ट को चयनित संदर्भ संख्या के आर्थिक विवरण वापस करने के लिए संघर्ष कर रहा हूं।एक्सेल वीबीए

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

Ref No Amount Price Year 
IB1232 1000 1.23 2011 
IB1231 1000 3.23 2011 
IB1233 1000 3.43 2011 
IB1234 1000 3.43 2011 

मैंने सोचा था कि प्राप्त करने के लिए सक्षम किया गया संदर्भ के लिए कुंजी और मान कर उनके संबंधित विवरण के गठन से प्राप्त करने में सक्षम है, लेकिन नहीं होगा ..

+0

रेफरी, राशि, मूल्य, और वर्ष अलग कॉलम (जैसे ए: डी) हैं? आप वापस पाने के लिए क्या डेटा कोशिश कर रहे हैं? यह एक ऐसी स्थिति हो सकती है जहां आप VLookup का उपयोग कर सकते हैं (उदाहरण के लिए, यदि आपके पास संदर्भ संख्या है और आप इसे अपनी डेटा शीट में देखना चाहते हैं और राशि वापस कराना चाहते हैं)। – aevanko

+0

शब्दकोश VBA में स्वयं संरचना के लिए, [यह] देखें (http://stackoverflow.com/questions/915317/does-vba-have-dictionary- संरचना) SO आलेख। – JackOrangeLantern

उत्तर

12

मैं नहीं जानता कि क्या आप के रूप में संदर्भ दे रहे वीबीए में शब्दकोश, क्योंकि कार्यक्षमता के साथ डेटा संरचना को वीबीए में Collection कहा जाता है (लेकिन हो सकता है कि आपने अपनी खुद की डायरी को कोड किया हो, उस स्थिति में हमें आपकी मदद करने में सक्षम होने के लिए कोड की आवश्यकता है)।

यदि मुझे आपका उदाहरण सही मिलता है, तो आप कुंजी "100012.23,2011} कुंजी" आईबी 1232 "के माध्यम से एक्सेस करना चाहते हैं। आप इस तरह के संग्रह का एक संग्रह बनाने के द्वारा आसानी से कर सकते हैं:

Dim coll as new Collection 
Dim data as new Collection 

data.Add 1000 
data.Add 1.23 
data.Add 2011 

coll.Add data, "IB1232" 

अपने डेटा को एक्सेस करने के लिए बस कुंजी

Debug.Print coll.Item("IB1232")(1) 'Prints 1000 
Debug.Print coll.Item("IB1232")(2) 'Prints 1.23 
Debug.Print coll.Item("IB1232")(3) 'Prints 2010 

के माध्यम से वांछित अभिलेख (संग्रह) मिलता है तुम भी की एक सरणी का उपयोग कर सकते डेटा

+0

हाय वहाँ, त्वरित प्रतिक्रिया के लिए बहुत बहुत धन्यवाद - हाँ, मैं वीबीए में डिक्शनरी ऑब्जेक्ट को रेफर कर रहा हूं - क्या मैं Excel/VBA का उपयोग करके डिक्ट ऑब्जेक्ट का उपयोग करके अपना उदाहरण प्राप्त नहीं कर सकता। –

14

@das_weezul

वहाँ पटकथा पुस्तकालय में VBA में एक शब्दकोश वस्तु है के लिए प्रकार (आप उस संदर्भ में इसका इस्तेमाल करने के लिए जोड़ने की जरूरत है)। डिक्शनरी में कुछ अतिरिक्त कार्यक्षमताएं हैं, जैसे कि यह जांचने की क्षमता है कि यह एक्सेस करने का प्रयास करने से पहले कोई कुंजी मौजूद है या नहीं।

@Sky कॉब

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

+0

संग्रह के साथ काम करने में बहुत मदद करता है - पूरी तरह से ठीक काम करता है और परिणाम निकालता है। –