Em VBA arrays são usados para definir o grupo de objetos juntos, existem nove funções de array diferentes em VBA e são ARRAY, ERASE, FILTER, ISARRAY, JOIN, LBOUND, REDIM, SPLIT e UBOUND, todas estas funções integradas para array no VBA, a função Array nos dá o valor para o argumento fornecido.
Função Excel VBA Array
A função de matriz é uma coleção de valores em uma única variável. Podemos fornecer uma matriz para uma sub-rotina em vba, funções e propriedades. Arrays VBA são uma das técnicas frequentemente usadas para armazenar mais de um valor na variável.
Exemplos de função de matriz VBA do Excel
Em vez de declarar muitas variáveis e armazenar os valores, podemos usar o array VBA do Excel para armazenar o valor em uma única variável. Por exemplo, veja o exemplo abaixo
Você pode baixar este modelo VBA Array Excel aqui - VBA Array Excel Template
Código:
Sub Array_Ex () Dim x As Integer Dim y As Integer x = 1 y = 2 Range ("A1"). Value = x Range ("A2"). Value = y End Sub
No exemplo acima, declarei duas variáveis chamadas x e y. X contém 1 como o valor e Y mantém 2 como o valor.
Agora, olhe para o exemplo de função de matriz VBA do Excel com uma única variável.
Código:
Sub Array_Ex () Dim x (1 a 2) como intervalo inteiro ("A1"). Valor = x (1) Intervalo ("A2"). Valor = x (2) End Sub
Agora, se você executar este código VBA, teremos valores nas células A1 e A2.
Variáveis de matriz retornaram o resultado como zero. Isso ocorre porque acabamos de declarar as variáveis como duas, mas não atribuímos nenhum valor a essas variáveis. Portanto, precisamos atribuir valores a essas variáveis.
Código:
Sub Array_Ex () Dim x (1 a 2) As Inteiro x (1) = 10 x (2) = 20 Intervalo ("A1"). Valor = x (1) Intervalo ("A2"). Valor = x (2 ) End Sub
Agora execute o código para obter resultados.
Antes de inserirmos os valores das variáveis de array nas células, precisamos atribuir o valor a essas variáveis de array declaradas, como atribuímos as variáveis x (1) = 10 & x (2) = 20.
Exemplo # 1 - Inserir números de série usando matriz estática
Vejamos o exemplo do uso de uma matriz estática para inserir números de série. Isso é muito parecido com o anterior.
Código:
Sub StaticArray_Ex () Dim x (1 a 5) As Integer x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Intervalo ("A1"). Valor = x (1) Faixa ("A2"). Valor = x (2) Faixa ("A3"). Valor = x (3) Faixa ("A4"). Valor = x (4) Faixa ("A5" ) .Value = x (5) End Sub
Agora execute este código para inserir números de série.
Exemplo 2 - Inserir números de série usando matriz dinâmica
Agora veremos o segundo tipo de array, ou seja, array dinâmico
Código:
Sub DynamicArray_Ex () Dim x () As Integer ReDim x (5) x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Faixa ("A1" ) .Valor = x (1) Faixa ("A2"). Valor = x (2) Faixa ("A3"). Valor = x (3) Faixa ("A4"). Valor = x (4) Faixa (" A5 "). Valor = x (5) End Sub
Agora execute este código para obter o resultado dos números de série. Obtemos o mesmo resultado do anterior.
Se você notar que não fornecemos o comprimento do array ao declarar a variável, em vez disso, atribuímos o último valor do array VBA usando a função VBA Redim. Redim contém o último valor do array a ser passado.
Exemplo # 3 - Criar uma função Inserir nomes de mês usando matriz
Vimos como trabalhar com arrays em VBA. Agora veremos como trabalhar com um array para criar funções VBA no Excel. A função nada mais é do que uma função definida pelo usuário no VBA. Além de usar funções integradas, o VBA do Excel nos permite criar nossas próprias funções também.
Código:
Function List_Of_Months () List_Of_Months = Array ("Jan", "Fev", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Set", "Out", "Nov "," Dec ") Função Final
O código abaixo irá criar uma função que pode inserir meses em nossa planilha excel.
Copie e cole o código abaixo no seu módulo.
Agora salve este código e feche o Editor do VBA. Depois de fechar o editor VBA, vá para a planilha e digite a fórmula que acabamos de criar e você deverá ver a fórmula chamada List_Of_Months em sua planilha.
Abra a fórmula e pressione Enter. Obteremos o nome do primeiro mês, ou seja, Jan
Se você inserir a fórmula mais uma vez, obteríamos janeiro, não o próximo mês de fevereiro. Portanto, primeiro selecione 12 colunas em uma linha.
Agora abra a fórmula na célula D1.
Como criamos a fórmula com a matriz, precisamos fechar as fórmulas apenas como fórmula de matriz. Portanto, segure Ctrl + Shift + Enter. Teríamos todos os nomes de 12 meses.
Coisas para lembrar
- Existem mais dois tipos de array disponíveis, ou seja, array bidimensional e array multidimensional.
- As matrizes começam em 0 e não em 1. Zero significa a primeira linha e a primeira coluna.
- A matriz é um grande tópico que você precisa entender para avançar para o próximo nível.
- A variável de matriz será aquela que contém muitos dados cada vez que avança para o próximo nível.
- Redim é usado para armazenar o último comprimento da matriz no tipo de matriz dinâmica.