Este tutorial demonstrará como gerar uma matriz para um intervalo usando o VBA.
Saída (impressão) de matriz para intervalo
Os dados armazenados em uma matriz podem ser facilmente enviados para uma planilha do Excel. Existem 3 maneiras de fazer isso.
Dados de saída para um intervalo diferente
Poderíamos preencher uma matriz com dados de um intervalo no Excel e, em seguida, enviar os dados para um intervalo diferente no Excel.
12345678 | Public Sub TestOutput ()'declara o arrayDim rnArray () como variante'preencher a matriz com o intervalornArray = Range ("A1: H24")'envia a matriz para um intervalo diferente de célulasIntervalo ("J1: Q24") = rnArray ()End Sub |
A matriz inteira é copiada em uma linha de código para a matriz e, em seguida, enviada em sua totalidade para um intervalo diferente de células na planilha.
Loop por meio de uma matriz e saída dos dados
Este exemplo fará um loop em uma matriz, gerando a saída da matriz em um intervalo.
12345678910111213 | Public Sub TestLoopArray ()'declara o arrayDim rnArray () como variante'Declara o inteiro para armazenar o número de linhasDim iRw As Integer'Atribuir intervalo a uma variável de matrizrnArray = Range ("A1: A10")'percorre os valores na matrizPara iRw = LBound (rnArray) para UBound (rnArray)'preencher um intervalo diferente com os dadosCélulas (iRw, 2) .Value = rnArray (iRw, 1)Next iRwEnd Sub |
LBounde UBoundretorna o índice inicial (limite inferior) e o índice final (limite superior) de uma matriz, neste caso 1 e 10.
Transpor dados de matriz
Também podemos transpor os dados do Array para a planilha do Excel. Transpor permite que você exiba os dados horizontalmente na planilha do Excel.
Por exemplo, se tivermos uma lista de estados no Excel e desejarmos transpô-los.
Poderíamos então executar o seguinte código:
12345678 | Public Sub TestOutputTranspose ()'declara o arrayDim rnArray () como variante'preenchê-lo com o intervalornArray = Range ("A1: A38")'transpor os dadosIntervalo (Células (1, 3), Células (1, 40)). Valor = Application.Transpose (rnArray)End Sub |
O que resultaria no seguinte:
Saída para Debug.Print
Também podemos enviar os valores da matriz para a janela de depuração.
12345678910111213 | Public Sub TestLoopArray ()'declara o arrayDim rnArray () como variante'Declara o inteiro para armazenar o número de linhasDim iRw As Integer'Atribuir intervalo a uma variável de matrizrnArray = Range ("A1: A10")'loop pelas linhas - 1 a 10Para iRw = 1 para UBound (rnArray)'saída para a janela imediataDebug.Print rnArray (iRw, 1)Next iRwEnd Sub |