Arquivo

Posts Tagged ‘Matriz’

Como Utilizar Matriz No Vba

Já precisei trabalhar muito com matriz no vba, matriz 4×4 e até 6×6.
Na época relutei muito até ver que não tinha outra alternativa senão usar matriz… Então segue um exemplo de codigo que usa matriz e assim ver que não é um monstro.
 .
Caso tenha outras dúvidas veja o artigo Declaracao-de-matriz

 .

Codigo Matriz No Vba

Sub Macro1()
Dim vetor(5) As String 'declaração de matriz com 6 valores

Sheets("Plan1").Select
Cells(2, 1).Select
linha = 2
conteudo = "vazio"
Do While conteudo <> ""  ' verifica  enquanto linha for diferente de vazia
   vetor(linha – 2) = Cells(linha, 1).Value 'vetor inicia-se com referencia zero
   linha = linha + 1 'contador de linha
   conteudo = Cells(linha, 1).Value 'grava o valor da linha atual
Loop
'apos gravar  os valores na matriz, vamos em outro sheet despejar tudo
'ou seja, melhor q ficar gravando varias variaveis
'ou ficar  utilizando a mesma variavel trocando de sheets

'agora vamos despejar os conteudos sem o while
Sheets("Plan2").Select 'na guia 2
Cells(2, 1).Value = vetor(0)
Cells(3, 1).Value = vetor(1)
Cells(4, 1).Value = vetor(2)
Cells(5, 1).Value = vetor(3)
Cells(6, 1).Value = vetor(4)
Cells(7, 1).Value = vetor(5)
'texto abaixo apenas para demonstrar as alterações
Cells(2, 4).Value = "VOCE ESTÁ NO PLAN2 COM OS VALORES COPIADOS"
ActiveWorkbook.Sheets("Plan1").Tab.ColorIndex = 3 'muda a cor do sheet1 (guia ou plan1)
ActiveWorkbook.Sheets("Plan2").Tab.ColorIndex = 25 'muda a cor do sheet2 (guia ou plan2)

End Sub

Declaração de matriz

MATRIZES

Um array (matriz) é uma lista de valores, onde cada valor do array é chamado elemento. Os arrays são criados na memória do computador e por isto possui um bom desempenho. (Não é necessário ficar copiando , trocando de tela e colando informações.) ou seja deixa a macro mais ágil.

Todos os arrays são indexados a partir de zero.

Exemplo:
Vetor(1) – refere-se a um elemento que está alocado (gravado) como número 1.
Exemplo(0) – refere-se ao primeiro elemento
ExVetor(3) – refere-se ao quarto elemento

MANEIRAS DE DECLARAR UM VETOR

Dim Vetor(4) As Integer –> Define um array com 5 elementos iniciados com zero
Dim Vetor() As Integer = {1, 2, 3, 4, 5} Define um array com 5 elementos e atribui valores a cada elemento
Redim Vetor(10) –> Redimensiona o array Vetor para 11 elementos

Exemplo de como funciona na pratica:
Vetor(elemento) -> Valor gravado
0     -> São Paulo
1     -> Rio de Janeiro
2     -> Belo Horizonte
3    -> Brasília
4     -> Porto Alegre
A declaração ficaria: Dim Vetor(5) as String

ARRAYS MULTIDIMENSIONAIS
100 | 200 | 300
250 | 180 | 140
160 | 80 | 135

Dim Vetor(2,2) para atribuir os valores para o array podemos fazer:
Dim values(,) As Integer = { {100, 200, 300}, {250, 180, 140} , {160, 80, 135}}

_______________________________________________________________
OBSERVAÇÕES:
Dim values1(9, 9) As Integer = Declara um array com 100 elementos
Dim values2(,) As Integer = Declara um array sem limites
ReDim values2(9, 9) = Define o tamanho do array