Trabalho com matrizes para a programação vba no excel 2016

A maioria das linguagens de programação suportam matrizes, incluindo VBA. A ordem

é um conjunto de variáveis ​​que compartilham um nome. Você se refere a uma variável específica na matriz, usando o nome da matriz e um número de índice entre parênteses. Por exemplo, você pode definir um conjunto de 12 variáveis ​​de cadeia para conter os nomes dos meses do ano. Se você nomear a matriz MonthNames, pode referir-se ao primeiro elemento da matriz como MonthNames (1), o segundo elemento como MonthNames (2), e assim por diante.

declarar arrays

Antes de poder utilizar um array, você devo declará-lo. Sem exceções. Ao contrário, com variáveis ​​normais, VBA é muito rigoroso sobre esta regra. Você declarar uma matriz com uma instrução Dim ou pública, assim como você declarar uma variável regular. No entanto, você também precisa especificar o número de elementos na matriz. Você faz isso especificando o primeiro número de índice, a palavra-chave para e, o último número índice - todos os parênteses dentro. O exemplo seguinte mostra como declarar uma matriz de 100 números inteiros:

Video: Criando Programa em VBA Excel - Completo

MeuArray fraca (1 a 100) As Integer

Quando você declarar uma matriz, você pode optar por especificar apenas o índice superior. Se você omitir o menor índice, VBA assume que é 0. Portanto, tanto das seguintes afirmações declarar a mesma matriz 101-elemento:

MeuArray dim (0 a 100) Como IntegerDim MeuArray (100) As Integer

Se você quiser VBA supor que 1 (em vez de 0) é o índice mais baixo para suas matrizes, incluir a seguinte declaração na seção Declarações na parte superior do seu módulo:

Base de Dados de Opção 1

Esta declaração forças VBA para usar 1 como o primeiro número de índice para as matrizes que declaram apenas o índice superior. Se esta afirmação está presente, as seguintes declarações são idênticas, tanto declara uma matriz de 100 elementos:

MeuArray fraca (1 a 100) Como IntegerDim MeuArray (100) As Integer

arrays multidimensionais

As matrizes criadas nos exemplos anteriores são todas as matrizes unidimensionais. Pense de matrizes unidimensionais como uma única linha de valores. Arrays você criar no VBA pode ter até 60 dimensões - embora raramente você precisa mais do que duas ou três dimensões em uma matriz. O exemplo a seguir declara uma matriz de 81 inteiro com duas dimensões:

Video: Curso de VBA - Aula 15 - Vetores e matrizes

MeuArray fraca (1 a 9, 1 a 9) As Integer

Você pode pensar dessa matriz como ocupando uma matriz de 9 x 9 - perfeito para armazenar todos os números em um puzzle Sudoku.



Para se referir a um elemento específico nessa matriz, é necessário especificar dois números de índice (semelhantes a sua “linha” e a sua “coluna” na matriz). O exemplo a seguir mostra como você pode atribuir um valor a um elemento desta matriz:

MeuArray (3, 4) = 125

Esta declaração atribui um valor para um único elemento na matriz. Se você está pensando da matriz em termos de uma matriz de 9 x 9, este atribui 125 ao elemento situado na terceira linha e quarta coluna da matriz.

Veja como declarar uma matriz tridimensional, com 1.000 elementos:

My3DArray fraca (1 a 10, 1 a 10, 1 a 10) As Integer

Você pode pensar em uma matriz tridimensional como um cubo. A visualização de um conjunto de mais do que três dimensões é mais difícil.

Video: Curso Básico de VBA - Aula 3 (Descomplicando o VBA e Dicas de Gravação de Macros)

matrizes dinâmicas

Você também pode criar dinâmico matrizes. Uma matriz dinâmica não tem um número pré-definido de elementos. Declarar uma matriz dinâmica com um conjunto vazio de parênteses:

Dim MeuArray () As Integer

Antes de poder utilizar essa matriz, você deve usar o ReDim declaração para dizer VBA quantos elementos a matriz tem. Normalmente, o número de elementos na matriz é determinado, enquanto o seu código está sendo executado. Você pode usar a declaração ReDim qualquer número de vezes, mudando o tamanho da matriz quantas vezes forem necessárias. O exemplo que se segue demonstra como alterar o número de elementos em uma matriz dinâmica. Assume-se que a variável numElements contém um valor, que seu código calculado.

Video: Habilitar guia desenvolvedor e copiar procedimentos VBA Excel

ReDim MeuArray (1 Para numElements)

Quando você redimensionar um array usando ReDim, você acabar com quaisquer valores atualmente armazenados nos elementos da matriz. Você pode evitar a destruição dos valores antigos usando a palavra-chave Preserve. O exemplo a seguir mostra como você pode preservar os valores de uma matriz quando você redimensionar a matriz:

ReDim Preservar MeuArray (1 Para numElements)

Se MeuArray tem actualmente dez elementos, e executa a instrução anterior com numElements igualando 12, os primeiros dez elementos permanecem intactos, e a matriz tem ambiente durante dois elementos adicionais (até o número contido nas numElements variáveis). Se numElements é igual a 7 no entanto, os primeiros sete elementos são retidos, mas os restantes três elementos atender a sua morte.


Publicações relacionadas