2011-07-26 42 views
5

Tôi đang cố gắng làm cho đối tượng Từ điển của tôi hoạt động để trả lại chi tiết kinh tế của Số tham chiếu đã chọn.Sử dụng Đối tượng Từ điển trong Excel VBA

ví dụ: Tôi có dưới đây tham khảo và các giá trị tương ứng, tuy nhiên, không chắc chắn nếu tôi có thể đạt được điều này bằng cách sử dụng đối tượng từ điển, và thay thế, gợi ý sẽ được đánh giá cao.

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 

tôi nghĩ sẽ có thể đạt được bằng cách hình thành chính và Giá trị tài liệu tham khảo và các chi tiết tương ứng của họ, nhưng không thể đạt được ..

+0

Các cột Không có, Số tiền, Giá và Năm riêng biệt (như A: D)? Bạn đang cố lấy lại dữ liệu nào? Đây có thể là một tình huống mà bạn có thể sử dụng VLookup (ví dụ, nếu bạn có một số tham chiếu và bạn muốn tìm nó trong bảng dữ liệu của bạn và trả lại số tiền). – aevanko

+0

Đối với cấu trúc từ điển chính nó trong VBA, xem [this] (http://stackoverflow.com/questions/915317/does-vba-have-dictionary-structure) SO Điều. – JackOrangeLantern

Trả lời

12

Tôi không biết những gì bạn đang đề cập đến như Từ điển trong VBA, như cấu trúc dữ liệu với chức năng nói trên được gọi là Collection trong VBA (nhưng có thể bạn đã mã hóa Ditionary của riêng bạn, trong trường hợp đó chúng ta cần mã để có thể giúp bạn).

Nếu tôi nhận được ví dụ của bạn đúng, bạn muốn truy cập ví dụ: {1000,1.23,2011} thông qua khóa "IB1232". Bạn có thể làm điều này một cách dễ dàng bằng cách tạo ra một Bộ sưu tập của bộ sưu tập như thế này:

Dim coll as new Collection 
Dim data as new Collection 

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

coll.Add data, "IB1232" 

Để truy cập vào dữ liệu của bạn chỉ nhận được các bản ghi mong muốn (Bộ sưu tập) qua phím

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 

Bạn cũng có thể sử dụng một loạt các biến thể cho dữ liệu

+0

Xin chào, cảm ơn rất nhiều phản hồi nhanh - có, tôi đang nói đến đối tượng Từ điển trong VBA - tôi không thể đạt được ví dụ của bạn bằng cách sử dụng đối tượng Dict sử dụng Excel/VBA. –

14

@das_weezul

có một đối tượng từ điển trong VBA trong thư viện mã (bạn cần phải thêm rằng tài liệu tham khảo để sử dụng nó). Từ điển có một số chức năng bổ sung, chẳng hạn như khả năng kiểm tra xem một khóa có tồn tại hay không trước khi thử truy cập nó.

@Sky Cobb

Có, bạn có thể thực hiện tất cả các tác vụ trên bằng Từ điển. Cú pháp sẽ giống nhau, ngoại trừ bạn nên cung cấp một khóa cho mỗi mục mà bạn thêm vào nó.

+0

Thans được quản lý rất nhiều để làm việc với Bộ sưu tập - hoạt động hoàn toàn tốt và nhận được kết quả đã hết hạn. –

Các vấn đề liên quan