Matriz de objetos VBA

Tabla de contenido

Este tutorial demostrará cómo crear y usar matrices de objetos en VBA.

En VBA, las matrices son variables que almacenan múltiples valores. Puede almacenar objetos VBA en matrices de la misma manera que almacenaría cualquier otro dato.

Declaración de la matriz de objetos

En este ejemplo, declararemos una matriz de hojas de trabajo de VBA:

1 Dim arWks (3) como hoja de trabajo

Llenado de una matriz de objetos estáticos

Declare la matriz de objetos como estática y luego puede completar la matriz con las hojas que seleccione de su libro de trabajo.

12345678 Sub TestObjArray ()'define la matriz como una matriz de hoja de trabajoDim arWks (1 a 3) como hoja de trabajo'agregue 3 hojas en la matrizset arWks (1) = Sheets (1)set arWks (2) = Sheets (2)Set arWks (3) = Sheets (3)End Sub

Poblando una matriz de objetos dinámicos

Puede declarar la matriz de objetos como dinámica y luego contar las hojas en el libro de trabajo antes de asignar el tamaño de la matriz a la matriz de objetos.

1234567891011121314 Sub TestObjArray ()'define la matriz como una matriz de hoja de trabajoDim arWks () como hoja de trabajo'cuenta cuántas hojas de trabajo hay en el archivo y vuelve a atenuar la matrizDim n como enteroDim i como entero'cuenta las hojas y menos uno para establecer los límites de la matrizn = Application.Sheets.Count - 1REDUCIR LAS ARCAS (n)'llena la matriz de la hoja de trabajo con todas las hojas del libro de trabajoPara i = LBound (arWks) a UBound (arWks)Establecer arWks (i) = ActiveWorkbook.Sheets (i + 1)Siguiente yoEnd Sub

En el ejemplo anterior, primero declaramos la matriz de hoja de trabajo. Luego contamos el número de hojas en el libro de trabajo y asignamos ese valor menos uno al UBound del Array. Esto se debe al hecho de que el LBound de la matriz comienza como 0. Finalmente, recorremos las hojas y agregamos cada hoja a la matriz.

Usando la matriz de objetos en el código VBA

Una vez que hayamos llenado la matriz de la hoja de trabajo, podemos usar VBA para recorrer la matriz.

123456789101112131415161718 Sub TestObjArray ()'define la matriz como una matriz de hoja de trabajoDim arWks () como hoja de trabajo'cuenta cuántas hojas de trabajo hay en el archivo y vuelve a atenuar la matrizDim n como enteroDim i como entero'cuenta las hojas y menos uno para establecer los límites de la matrizn = Application.Sheets.Count - 1REDUCIR LAS ARCAS (n)'llena la matriz de la hoja de trabajo con todas las hojas del libro de trabajoPara i = LBound (arWks) a UBound (arWks)Establecer arWks (i) = ActiveWorkbook.Sheets (i + 1)Siguiente yo'haz algo en cada hoja de la matrizPara i = LBound (arWks) a UBound (arWks)arWks (i) .Range ("A1: H1"). Font.Bold = TrueSiguiente yoEnd Sub

En el ejemplo anterior, recorremos la matriz y ponemos en negrita la primera fila de cada hoja de la matriz.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave