2011-07-26 29 views
5

Tengo dificultades para hacer que mi objeto Diccionario funcione para devolver los detalles económicos del número de referencia seleccionado.Usar el objeto del diccionario en Excel VBA

p. Ej. Tengo los números de referencia a continuación y los valores correspondientes, sin embargo, no estoy seguro si puedo lograr esto utilizando el objeto Diccionario, y la sugerencia alternativa sería muy apreciada.

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 

que pensé que sería capaz de lograr mediante la formación de clave y valor para referencia y sus correspondientes detalles, pero no ha sido capaz de lograr ..

+0

¿Ref. Ref., Cantidad, precio y año columnas separadas (como A: D)? ¿Qué datos estás tratando de recuperar? Esta podría ser una situación en la que puede usar VLookup (por ejemplo, si tiene un número de referencia y desea buscarlo en su hoja de datos y devolver el monto). – aevanko

+0

Para la estructura del diccionario en VBA, vea [this] (http://stackoverflow.com/questions/915317/does-vba-have-dictionary-structure) SO Artículo. – JackOrangeLantern

Respuesta

12

No sé a qué se refiere como Diccionario en VBA, ya que la estructura de datos con dicha funcionalidad se llama Collection en VBA (pero tal vez haya codificado su propio Ditionary, en ese caso necesitamos el código para poder ayudarlo).

Si obtengo el ejemplo correcto, quiere acceder, por ejemplo, {1000,1.23,2011} mediante la tecla "IB1232". Esto se puede hacer fácilmente mediante la creación de una colección de colecciones como esta:

Dim coll as new Collection 
Dim data as new Collection 

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

coll.Add data, "IB1232" 

acceder a sus datos acaba de obtener el registro deseado (Colección) a través de la tecla

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 

También puede utilizar una gran variedad de las variantes de los datos

+0

Hola, muchas gracias por la respuesta rápida. Sí, me refiero al objeto Diccionario en VBA. ¿No puedo lograr su ejemplo utilizando el objeto Dict utilizando Excel/VBA? –

14

@das_weezul

Hay un objeto Dictionary en VBA en la biblioteca de secuencias de comandos (que necesita añadir que la referencia a usarlo). El diccionario tiene alguna funcionalidad adicional, como la capacidad de verificar si existe una clave antes de intentar acceder a ella.

@Sky Cobb

Sí, se puede hacer todas las tareas anteriores con el Diccionario. La sintaxis será la misma, excepto que debe proporcionar una clave para cada elemento que agregue.

+0

Thans logró mucho trabajar con Collection: funciona perfectamente bien y obtiene los resultados esperados. –