VBA Declare Array - Como declarar matrizes em VBA?

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 ​​às quais 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

Exemplo 1

Para declarar, não precisamos fazer nenhuma codificação VBA especial. Em vez disso, 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. Esta é uma maneira de fazer. Ainda podemos 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, quero mostrar esses números na caixa de mensagem no 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 de 1 a 5 tamanhos.

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 Aluno (1), Aluno (2) desta forma 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, usar a propriedade CELLS obtém 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, na 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 Inteiro Para K = 1 a 5 Student (K) = Células (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

We have seen above how the array works, now we will see to dimensional arrays. Two-dimensional arrays concentrate on both rows and columns.

In the above example, we have determined the array’s size as 1 to 5; this either concentrates on rows or columns.

By using two-dimensional arrays, we can concentrate on both rows and columns. For this, we need to enclose two loops.

First, define the variable then late we will decide about the size of the array.

Code:

Sub Two_Array_Example() Dim Student As String End Sub

First, decide row size then decide the column length.

Code:

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

For this, I have structured the data for student names, 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 a 5, 1 a 3) As String Dim K As Integer, J As Integer End Sub

Agora inclua o loop, conforme mostrado abaixo.

Código:

Sub Two_Array_Example () Dim Student (1 a 5, 1 a 3) As String Dim k As Integer, J As Integer For k = 1 To 5 For J = 1 To 3 Worksheets ("Student List"). Selecione Student (k, J) = Células (k, J). Planilhas de valores ("Copiar planilha"). Selecionar células (k, J). Valor = Aluno (k, J) Próximo J Próximo k Fim Sub

O que isso fará é copiar os dados da planilha “Lista de alunos” e colar em “Copiar planilha”.

Coisas para lembrar

  • A matriz é um conceito vasto; esta é apenas uma parte introdutória.
  • Você precisa de habilidades de codificação avançadas para entender a declaração da matriz.
  • Quanto mais você usa arrays em seu código, mais você se acostuma.

Artigos interessantes...