Cómo utilizar VBA en Excel Colecciones
Una colección es un tipo de datos que contiene objetos de almacenamiento como matrices (pero diferentes). Al escribir códigos básicos de VBA, debe haber utilizado libros de trabajo, hojas de trabajo, rangos, etc. Todos son colecciones. En este artículo, aprenderemos sobre las colecciones de VBA.
¿Qué es una colección en VBA?
Una colección es un tipo de datos que almacena tipos similares de objetos como matrices. Pero a diferencia de las matrices, su tamaño se puede aumentar o disminuir dinámicamente según los requisitos.
Puede agregar, buscar, recuperar y eliminar elementos de las colecciones.
A diferencia de las matrices, no puede cambiar los valores de los elementos de las colecciones. Si lo desea, use matrices como elemento en la colección.
Una colección tiene 4 propiedades o métodos asociados.
Collection.Add Collection.Item Collection.Count Collection.Remove
A través de este artículo, exploraremos el uso de estas propiedades.
¿Cómo crear una colección en VBA?
Una colección es un objeto, por lo que es necesario declararlo e inicializarlo. Como cualquier otro objeto en VBA, existen dos métodos para crear una colección en VBA.
1. Creación instantánea
Dim items as new Collection
En el método anterior, el objeto se crea instantáneamente. Puede comenzar a utilizar esta colección para sus necesidades de inmediato.
2. Creación retrasada
Dim items as Collection Set items = New Collection
En este método, primero creamos una referencia de colección y, cuando es necesario, inicializamos con un objeto de colección. Con este método, puede optar por crear la colección según algunos criterios.
Agregar elementos a una colección (Collection.Add)
Usamos el método Add para agregar nuevos elementos a una colección.
items.Add "Apples"
El código anterior agregará la cadena «Manzanas» en la colección.
items.Add 1.4
El código anterior agregará el doble 1.4 al final de la colección.
También podemos definir claves para estos elementos. Estas claves se pueden utilizar para acceder a los elementos de la colección.
Insertar elementos en la colección antes o después de un elemento existente
El método Add agrega nuevos elementos al final de la colección. El método de adición tiene cuatro parámetros.
Add(item,[Key],[Before],[After])
El primer argumento es necesario. Es el objeto o que desea agregar a la colección. Los argumentos de descanso son opcionales. Veremos los usos de estos argumentos en esta sección.
Si queremos agregar algún elemento antes o después de algún índice / clave en particular, usamos los parámetros Antes y Después del método Agregar.
items.Add True, "b", "cnst" 'Or items.Add True, Before:="cnst"
Ambas líneas insertarán un valor booleano antes de la clave «cnst» en los elementos de la colección VBA.
Para insertar un elemento después de un índice / elemento / clave en particular, usamos el parámetro After del método Add.
'inserting "Mango" with key "m" after key "cnst" items.Add "Mango", Key:="m", after:="b"
Sobre la línea se insertará «Mango» con la tecla «m» después de la tecla «b».
Nota: * Las claves de los elementos deben ser únicas. No se aceptará ninguna clave que ya exista en la colección. VBA devolverá un error de que «la clave ya está asociada con un elemento de esta colección».
Podemos usar esto para nuestra ventaja para obtener una lista única de la colección.
Acceder a elementos de la colección (Collection.Item)
Hay dos métodos para acceder a los elementos de una colección. . CollectionName («índice / clave»)
-
CollectionName.Item («índice / clave»)
Por ejemplo, para acceder a un miembro en los elementos de una colección * en el índice 1 y la clave «apl», puedo usar cualquiera de los siguientes códigos VBA.
Debug.Print items.Item(1) -- Debug.Print items(1) -- Debug.Print items.Item("apl") -- Debug.Print items("apl")
¿Cómo contar los elementos de una colección? (Recaudación.Cuenta)
Para obtener el número total de objetos o elementos en una colección, usamos la función .Count de colección. El método .Count devuelve el número total de elementos de la colección.
items.Count
La línea de arriba dará el recuento de objetos que tiene la colección.
¿Cómo acceder a todos los elementos de una colección?
La única forma de acceder a todos los elementos de la colección en VBA son los bucles.
Repasamos cada elemento de la colección para acceder a ellos. Para eso usamos for loop. El bucle for-each se considera la forma más rápida y limpia de acceder a los objetos de la colección.
Recorriendo una colección en VBA
Hay varias formas de recorrer la colección en VBA. Usaremos más elegante para cada ciclo para iterar a través de la colección.
Demasiado recorrer cada elemento de una colección, solo use esta línea de código VBA.
For Each itm In items Debug.Print itm Next itm
Eliminando elementos de una colección (Collection.Remove)
Para eliminar un elemento de una colección de vba, podemos usar el método Eliminar. El método remove toma un argumento. Puede ser el índice o la clave del artículo (si está disponible).
items.Remove (1) 'using index -- items.Remove 1 -- items.Remove ("apl") 'using key -- items.Remove "apl"
Eliminando la colección en VBA
Bueno, no puedes eliminar una colección en vba. Sin embargo, puede eliminar todos los elementos de esa colección configurándola nuevamente como una nueva colección.
Set items = New Collection
Esta línea de código creará una nueva colección en la dirección de los artículos.
Por lo tanto, nuestra colección se vaciará.
Matriz vs Colección en VBA
normally.
first.
|
above examples.
directly. |
Así que sí, chicos, esto es lo básico de las colecciones. Hay muchos beneficios y usos de la colección VBA en herramientas de oficina. Los exploraremos juntos. Hasta entonces, si tiene alguna consulta sobre la colección o cualquier cosa relacionada con Excel / VBA, escríbala en la sección de comentarios a continuación.