2011-07-26 17 views
5

Sözlük nesnesinin, seçilen Referans numarasının ekonomik ayrıntılarını döndürmesi için çalışmasını sağlıyorum.Excel'de Sözlük Nesnesini Kullanma VBA

örn. Bununla birlikte, referans no'ları ve karşılık gelen değerlerin altındayım, ancak bunu Dictionary nesnesini kullanarak gerçekleştirebileceğimden emin değilim ve alternatif, öneri çok takdir edilecektir.

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 
elde etmek mümkün olmuştur Anahtarı ve değer referans ve bunlara karşılık gelen detaylar oluşturarak elde etmek mümkün değil olacağını düşündüm

..

+0

Ref No, Tutar, Fiyat ve Yıl sütunları (A: D gibi) ayrı mı? Hangi verileri geri almaya çalışıyorsun? Bu, VLookup'u kullanabileceğiniz bir durum olabilir (örneğin, bir referans numaranız varsa ve bunu veri sayfanızda görmek ve miktarı iade etmek istiyorsanız). – aevanko

+0

VBA'da sözlük yapısının kendisi için, bkz. [This] (http://stackoverflow.com/questions/915317/does-vba-have-dictionary-structure) SO Article. – JackOrangeLantern

cevap

12

sana olarak bahsettiğin şey bilmiyorum VBA'daki sözlüğü, söz konusu işleve sahip veri yapısı olarak VBA'da Collection olarak adlandırılır (ancak belki kendi Ditionary kodunuzu kodlayabildiniz, bu durumda size yardımcı olabilmemiz için koda ihtiyacımız var).

Örneğinizi doğru şekilde alırsam, "IB1232" anahtarı ile e. {1000,1.23,2011} adresine erişmek istersiniz. Ayrıca bir dizi kullanabilirsiniz sadece anahtar

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 

yoluyla istenilen kaydı (Koleksiyon) almak

Dim coll as new Collection 
Dim data as new Collection 

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

coll.Add data, "IB1232" 

verilerinize erişmek için: Böyle Koleksiyonlarınızın Koleksiyonu oluşturarak kolayca yapabilirsiniz veri

+0

Merhaba, hızlı yanıt için çok teşekkürler - evet, VBA'daki Dictionary nesnesine başvuruyorum - Excel/VBA kullanarak Dict nesnesini kullanarak örnek oluşturmuyorum. –

14

@das_weezul

betik kütüphanede VBA bir sözlük nesne yok ilişkin Değişkenler (bunu kullanmak için o başvuru eklemek gerekir). Sözlüğün, bir anahtarın erişmeye çalışmadan önce var olup olmadığını kontrol etme yeteneği gibi bazı ekstra işlevleri vardır.

@Sky Cobb

Evet, Sözlük yukarıda görevlerin tümünü yapabilirdi. Sözdizimi aynı olacaktır, ancak eklediğiniz her öğe için bir anahtar sağlamalısınız.

+0

Koleksiyonla birlikte çalıştığı çok fazla Thans - mükemmel bir şekilde çalışıyor ve sonuçların elde edilmesini sağlıyor. –