Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Vectores en VBA

| 7 comentarios

Los vectores en VBA, también conocidos como arreglos permiten el almacenamiento de varios valores (del mismo tipo de dato) en una especie de lista de elementos, los vectores o arreglos en VBA tiene al menos una dimensión.

Ejemplos de Vectores de una Dimensión

Un Arreglo Vector estaría compuesto por varios elementos del mismo tipo de dato que poseen un nombre común.

Para definir un Arreglo Vector lo realizamos de la siguiente forma:

imagen1 Vectores en VBA

Al definir el arreglo para Nota(4), Excel nos indica que la variable Nota puedo tomar 5 valores de 0 a 4.

imagen2 Vectores en VBA

El vector Nota esta compuesto por 5 elementos: Nota(0), Nota(1), Nota(2), Nota(3) y Nota(4).

Otra forma de declarar un Arreglo Vector es por medio de un Lazo For

imagen3 Vectores en VBAPodemos denotar que la variable Dato contiene 6 tiene elementos del 1 al 6. de una sola dimensión.

Archivo: Vectores en VBA

Ejemplos de Vectores varias dimensiones

Notemos que los vectores pueden tener varias dimensiones en este caso una declaración, podría ser de la siguiente forma:

Dim Datos(2, 2) As String

En el siguiente ejemplo podemos ver como a uno de los elementos de este vector o arreglo, se le asigna el valor existente en una de las celdas, para luego mostrarlo por medio de un msgbox.

 

Sub prueba()

Dim Datos(2, 2) As String

Datos(1, 1) = Cells(3, 4)

MsgBox Datos(1, 1)

End Sub

Podemos observar mas ejemplos en:

Arreglos en VBA

Declarar Arreglos en VBA

7 comentarios

  1. Muchas gracias! muy clara explicación!!

  2. buenas! como puedo hacer un vector por unica vez y usarlo en distintas partes del formulario sin tener que crearlo en cada lugar donde estoy trabajando del formulario?

    • deberías declararlo en la jerarquia desde donde querés uqe tenga validez. Si lo declarás en el módulo aplica a todo el proyecto, si lo declarás en el Form es válidi en ese entorno y si lo declaras en la Sub, será local a dicha subrutina.

  3. Puedo declarar un vector con tamaño variable?
    Ejemplo:

    ...... una operación anterior dará el valor a x

    Dim vector(x) As String

  4. Buenas tardes tengo esta sintaxis para cambiar la fecha en una tabla dinámica que tiene varios niveles.

    ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("[Fecha].[Fechas].[Año]" _
    ).VisibleItemsList = Array("")

    ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("[Fecha].[Fechas].[Mes]" _
    ).VisibleItemsList = Array("[Fecha].[Fechas].[Año].&[2019].&[2019]&[10]")

    Mi pregunta es: ¿Cómo podría hacer para que la parte de la sintaxis donde se escoge la fecha esto: &[2019].&[2019]&[10], sea mediante el valor de una celda y por lo tanto pueda ser variable?

    Gracias

  5. Buenas tardes tengo esta sintaxis para cambiar la fecha en una tabla dinámica que tiene varios niveles.

    ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("[Fecha].[Fechas].[Año]" _
    ).VisibleItemsList = Array("")

    ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("[Fecha].[Fechas].[Mes]" _
    ).VisibleItemsList = Array("[Fecha].[Fechas].[Año].&[2019].&[2019]&[10]")

    Mi pregunta es: ¿Cómo podría hacer para que la parte de la sintaxis donde se escoge la fecha esto: &[2019].&[2019]&[10], sea mediante el valor de una celda y por lo tanto pueda ser variable?

    Gracias

  6. Buenas dias como puedeo hacer o como me pueden guiar dar el valor de una celda al correr unas fila de celdas con con color

Deja una respuesta

Los campos requeridos estan marcados con *.