Excel VBA – Redimensionar Intervalo

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on July 28, 2023

Redimensionamento de intervalo usando VBA

Este tutorial demonstrará como usar a propriedade Resize do objeto Range para alterar e retornar um novo intervalo redimensionado a partir do objeto Range original.

Sintaxe

A sintaxe da propriedade Resize é a seguinte

Range("A1").Resize (NumeroLinhas, NumeroColunas)

Onde Range(“A1”) é seu intervalo inicial.

NumeroLinhas e NumeroColunas devem ser maiores que zero. Cada entrada é opcional (por exemplo, você pode omitir NumeroLinhas para alterar somente o número de colunas, ou vice-versa).

Redimensionar o Número de Linhas e Colunas

O exemplo a seguir expande o intervalo com uma célula A1 para o intervalo A1:D10, aumentando a contagem de linhas para 10 e a contagem de colunas para 5.

Range("A1").Resize(10, 5).Select

redimensionar base dados

Ou, mais comumente, você atribuirá o intervalo redimensionado a uma variável:

   ' Redimensionar o intervalo para o tamanho desejado e atribua-o a uma variável
 Set novoRng = ActiveSheet.Range("A1").Resize(10, 5)

Redimensionar Somente o Número de Linhas

O exemplo a seguir altera apenas o número de linhas:

   ' Alterar somente o tamanho da linha, o novo intervalo será $A$1:$A$10
 Set novoRng = rng.Resize(10)

Redimensionar Somente o Número de Colunas

O exemplo a seguir altera apenas o número de colunas:

   ' Alterar somente o tamanho de colunas, o novo intervalo será $A$1:$E$1
 Set novoRng = rng.Resize(, 5)

Redimensionar o Intervalo da Tabela para Excluir o Cabeçalho

Se você tiver uma tabela na planilha ativa com uma linha de cabeçalho, o código primeiro selecionará a tabela inteira e, em seguida, moverá uma linha para baixo para excluir o cabeçalho usando o método Range.Offset. Em seguida, ele usará a propriedade Range.Resize para reduzir o tamanho em uma linha.

Sub SelecionarDadosTabela()
 ' **IMPORTANTE**
 ' Clique em qualquer célula da tabela antes de executar a macro
    
 ' Mover uma linha para baixo usando Offset e, em seguida, reduzir o tamanho do intervalo em uma linha
 Set tbl = ActiveCell.CurrentRegion.Offset(1, 0)
 Set tbl = tbl.Resize(tbl.Rows.Count - 1, tbl.Columns.Count)
     
 ' Os dados são selecionados excluindo a linha de cabeçalho
 tbl.Select
End Sub

Gravação de Matriz 2-D em Intervalo

Outro uso comum é gravar uma matriz bidimensional em uma planilha. Como o intervalo a ser gravado deve corresponder ao tamanho da matriz, que normalmente não é conhecido de antemão, o método Resize é usado para definir o intervalo de saída.

O exemplo abaixo lerá os dados no intervalo A1:E10 da planilha ativa em uma matriz e gravará a matriz na planilha ‘Saída’, começando pela célula A1:

Sub GravarMatriz() 
 ' Ler os dados em uma matriz
 dados = Range("A1:E10").Value
 ' Redimensionar o intervalo de saída e gravar a matriz
 Worksheets("Saída").Range("A1").Resize(UBound(dados, 1), UBound(dados, 2)).Value = dados
End Sub

Escrito por: Vinamra Chandra

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