Matriz de objetos VBA

Índice

Este tutorial demonstrará como criar e usar matrizes de objetos no VBA.

No VBA, os Arrays são variáveis ​​que armazenam vários valores. Você pode armazenar objetos VBA em matrizes da mesma maneira que armazenaria quaisquer outros dados.

Declarando o Object Array

Neste exemplo, declararemos uma matriz de planilhas VBA:

1 Dim arWks (3) como planilha

Preenchendo uma matriz de objeto estático

Declare o Object Array como Static, e então você pode preencher o array com as planilhas que você selecionar em sua pasta de trabalho.

12345678 Sub TestObjArray ()'define a matriz como uma matriz de planilhaDim arWks (1 a 3) como planilha'adicionar 3 folhas na matrizdefinir arWks (1) = Folhas (1)definir arWks (2) = Folhas (2)Definir arWks (3) = Folhas (3)End Sub

Preenchendo uma matriz de objeto dinâmico

Você pode declarar o Object Array como Dynamic e contar as folhas na pasta de trabalho antes de atribuir o tamanho do array ao Object Array.

1234567891011121314 Sub TestObjArray ()'define a matriz como uma matriz de planilhaDim arWks () como planilha'contar quantas planilhas no arquivo, e re-dim o arrayDim n As IntegerDim i As Integer'contar as folhas e menos um para definir os limites para a matrizn = Application.Sheets.Count - 1ReDim arWks (n)'preencha a matriz da planilha com todas as planilhas da pasta de trabalhoPara i = LBound (arWks) para UBound (arWks)Definir arWks (i) = ActiveWorkbook.heets (i + 1)Proximo euEnd Sub

No exemplo acima, primeiro declaramos a matriz da planilha. Em seguida, contamos o número de folhas na pasta de trabalho e atribuímos esse valor menos um ao UBound da Matriz. Isso se deve ao fato de que o LBound do Array começa como 0. Finalmente, fazemos um loop pelas folhas e adicionamos cada folha ao array.

Usando o Object Array no código VBA

Depois de preencher o array Worksheet, podemos usar o VBA para percorrer o array.

123456789101112131415161718 Sub TestObjArray ()'define a matriz como uma matriz de planilhaDim arWks () como planilha'contar quantas planilhas no arquivo, e re-dim o arrayDim n As IntegerDim i As Integer'contar as folhas e menos um para definir os limites para a matrizn = Application.Sheets.Count - 1ReDim arWks (n)'preencha a matriz da planilha com todas as planilhas da pasta de trabalhoPara i = LBound (arWks) para UBound (arWks)Definir arWks (i) = ActiveWorkbook.heets (i + 1)Proximo eu'fazer algo em cada folha do arrayPara i = LBound (arWks) para UBound (arWks)arWks (i) .Range ("A1: H1"). Font.Bold = TrueProximo euEnd Sub

No exemplo acima, percorremos a matriz e colocamos em negrito a primeira linha de cada folha na matriz.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave