VBA Declare Array

Excel VBA Declare Array

A declaração de array no VBA é muito semelhante à de variáveis, é feita pela mesma instrução dim ou instrução pública ou privada estática, a única diferença em declarar um array e declarar uma variável é que ao declarar um array, temos que fornecer um tamanho de uma matriz que é o limite superior da matriz e o limite inferior da matriz.

No código VBA, podemos declarar uma única matriz de variável que pode conter o número de variáveis ​​em vez de declarar variáveis ​​únicas. Isso pode ajudar a reduzir o número de linhas no código.

A matriz é um tipo de variável que pode conter mais de um valor, ao contrário das variáveis ​​regulares que podem conter apenas um valor por vez. O array é uma versão avançada de declarar variáveis ​​em VBA. Por exemplo, imagine uma situação em que você deseja atribuir 5 nomes de alunos a variáveis ​​e, na prática geral, declaramos cinco variáveis ​​para todas as cinco variáveis ​​que atribuímos nomes de alunos individuais, um por um, abaixo está o código de exemplo do mesmo.

Código:

 Sub Array_Example () Dim Student1 As String Dim Student2 As String Dim Student3 As String Dim Student4 As String Dim Student5 As String End Sub 

Em vez de declarar tantas variáveis, que tal a ideia de declarar um único array de variáveis ​​que pode conter todos os nomes dos alunos.

Sim, isso é possível declarando a matriz em VBA.

Exemplos

Você pode baixar este modelo VBA Declare Array Excel aqui - VBA Declare Array Modelo Excel

Exemplo 1

Para declarar que não precisamos fazer nenhuma codificação VBA especial, precisamos seguir conceitos simples.

Primeiro, inicie o subprocedimento.

Código:

 Sub Array_Example () End Sub 

Agora, como de costume, declare uma variável como uma string.

Código:

 Sub Array_Example () Dim Student As String End Sub 

Depois que a variável for declarada, certifique-se de quantos valores ela deve conter. Nesse caso, quero armazenar os nomes de cinco alunos, então agora precisamos corrigir o tamanho do array, ou seja, 1 a 5. Forneça o mesmo para a variável entre colchetes.

Código:

 Sub Array_Example () Dim Student (1 a 5) As String End Sub 

Agora, para esta única variável, podemos armazenar 5 nomes de alunos.

Código:

 SubArray_Example () Dim Student (1 a 5) As String Student (1) = "John" Student (2) = "Peter" Student (3) = "Ricky" Student (4) = "Michael" Student (5) = "Anderson" End Sub 

Veja quantas linhas reduzimos declarando a variável como um array. Essa é uma maneira de fazer com que ainda possamos encurtar esse código colocando-o dentro dos loops no VBA.

Agora, por exemplo, os mesmos cinco nomes que tenho nas células da planilha.3

Agora eu quero mostrar esses números na caixa de mensagem em VBA, ok vamos declarar mais uma variável para loops como tipo de dados Integer.

Código:

 Sub Array_Example () Dim Student (1 a 5) As String Dim K As Integer End Sub 

Como de costume, mantive a variável de matriz com o tamanho de 1 a 5.

Agora abra o loop FOR NEXT no VBA e, como temos cinco nomes, insira o limite de 1 a 5.

Código:

 Sub Array_Example () Dim Student (1 a 5) As String Dim K As Integer For K = 1 To 5 Next K End Sub 

Para atribuir valores à variável de matriz, não precisamos seguir a maneira anterior de mostrar Student (1), Student (2) como este para a variável de loops de oferta de posição de números “k”.

Código:

 Sub Array_Example () Dim Student (1 a 5) As String Dim K As Integer For K = 1 a 5 Student (K) = Next K End Sub 

Para esta variável de matriz, precisamos dos valores da planilha, portanto, usando a propriedade CELLS, obtenha os valores da planilha.

Código:

 Sub Array_Example () Dim Student (1 a 5) As String Dim K As Integer For K = 1 a 5 Student (K) = Cells (K, 1) .Value Next K End Sub 

Agora, através da caixa de mensagem, mostre o valor da variável do array.

Código:

 Sub Array_Example () Dim Student (1 a 5) As String Dim K As Integer For K = 1 a 5 Student (K) = Cells (K, 1) .Value MsgBox Student (K) Next K End Sub 

Agora execute o código, na caixa de mensagem, veremos o primeiro nome. Novamente pressione Ok para ver o segundo nome. Assim, pressionando Ok, podemos ver todos os cinco nomes.

Exemplo # 2 - Matrizes bidimensionais

Vimos acima como funciona o array, agora veremos os arrays dimensionais. As matrizes bidimensionais concentram-se em linhas e colunas.

No exemplo acima, determinamos o tamanho do array de 1 a 5, que se concentra em linhas ou colunas.

Ao usar arrays bidimensionais, podemos nos concentrar em linhas e colunas. Para isso, precisamos incluir dois loops.

Primeiro, defina a variável e depois decidiremos sobre o tamanho do array.

Código:

 Sub Two_Array_Example () Dim Student As String End Sub 

Primeiro, decida o tamanho da linha e depois o comprimento da coluna.

Código:

 Sub Two_Array_Example () Dim Student (1 a 5, 1 a 3) As String End Sub 

For this, I have structured the data for student name, marks and grade status.

Now come back to the coding window.

Declare two more variables for a loop.

Code:

 Sub Two_Array_Example() Dim Student(1 To 5, 1 To 3) As String Dim K As Integer , J As Integer End Sub 

Now enclose the loop as shown below.

Code:

 Sub Two_Array_Example() Dim Student(1 To 5, 1 To 3) As String Dim k As Integer , J As Integer For k = 1 To 5 For J = 1 To 3 Worksheets("Student List").Select Student(k, J) = Cells(k, J).Value Worksheets("Copy Sheet").Select Cells(k, J).Value = Student(k, J) Next J Next k End Sub 

What this will do is it will copy the data from the “Student List” sheet and paste in “Copy Sheet”.

Things to Remember

  • The array is a vast concept, this is just an introductory part.
  • You need advanced coding skills to understand the array declaration.
  • The more you use arrays in your code the more you will get used to it.