VBA – Saída (Impressão) de Matriz para Intervalo

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on July 17, 2023

Este tutorial demonstrará como enviar 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. Há três maneiras de fazer isso.

Saída de Dados 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.

Public Sub TestarSaida()
'declarar a matriz
   Dim rnArray() As Variant
'preencher a matriz com o intervalo
   rnArray = Range("A1:H24")
'enviar a matriz para um intervalo diferente de células
   Range("J1:Q24") = rnArray()
End Sub

Todo o intervalor é copiado 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.

Looping em uma Matriz e Saída dos Dados

Este exemplo fará um loop em uma matriz, devolvendo a matriz em um intervalo.

Public Sub TestarLoopMatriz()
'declarar a matriz
   Dim rnArray() As Variant
'Declarar o número inteiro para armazenar o número de linhas
   Dim iRw As Integer
'Atribuir intervalo a uma variável de matriz
   rnArray = Range("A1:A10")
'percorrer os valores da matriz
   For iRw = LBound(rnArray) To UBound(rnArray)
'preencher um intervalo diferente com os dados
      Cells(iRw, 2).Value = rnArray(iRw, 1)
   Next iRw
End Sub

LBound e UBound retornam o índice inicial (limite inferior) e o índice final (limite superior) de uma matriz, nesse caso, 1 e 10.

Transpor Dados da Matriz

Também podemos transpor os dados da matriz para a planilha do Excel. A transposição permite que você exiba os dados horizontalmente na planilha do Excel.

Por exemplo, se tivermos uma lista de estados no Excel e quisermos transpô-los.

vba array transpose 1

Poderíamos então executar o seguinte código:

Public Sub TestarSaidaTranspor()
'declarar a matriz
   Dim rnArray() As Variant
'preenchê-la com o intervalo
   rnArray = Range("A1:A38")
'transpor os dados
   Range(Cells(1, 3), Cells(1, 40)).Value = Application.Transpose(rnArray)
End Sub

O que resultaria no seguinte:

vba array transpose 2

Saída para Debug.Print

Também podemos enviar os valores da matriz para a janela de depuração.

Public Sub TestarLoopMatriz()
'declarar a matriz
   Dim rnArray() As Variant
'Declarar o número inteiro para armazenar o número de linhas
   Dim iRw As Integer
'Atribuir intervalo a uma variável de matriz
   rnArray = Range("A1:A10")
'percorrer as linhas de 1 a 10
   For iRw = 1 To UBound(rnArray)
'saída para a janela de verificação imediata
     Debug.Print rnArray(iRw, 1)
   Next iRw
End Sub
vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA