Redimensionar intervalo usando VBA
Este tutorial irá demonstrar como usar o Resize Property do Objeto de alcance para alterar para retornar um novo intervalo redimensionado do objeto Range original.
Sintaxe
A sintaxe da propriedade Resize é:
1 | Intervalo ("A1"). Redimensionar (RowSize, ColumnSize) |
Onde Range (“A1”) é o seu intervalo inicial.
RowSize e ColumnSize devem ser maiores que zero. Cada entrada é opcional (por exemplo, você pode omitir RowSize para alterar apenas 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.
1 | Intervalo ("A1"). Redimensionar (10, 5) .Selecionar |
Ou, mais comumente, você atribuirá o intervalo redimensionado a uma variável:
12 | 'Redimensione o intervalo para o tamanho desejado e atribua a uma variávelDefina newRng = ActiveSheet.Range ("A1"). Redimensionar (10, 5) |
Redimensionar apenas o número de linhas
O exemplo a seguir altera apenas o número de linhas:
12 | 'Alterar o tamanho da linha apenas, o novo intervalo será $ A $ 1: $ A $ 10Defina newRng = rng.Resize (10) |
Redimensionar apenas o número de colunas
O exemplo a seguir altera apenas o número de colunas:
12 | 'Alterar o tamanho da coluna apenas, o novo intervalo será $ A $ 1: $ E $ 1Defina newRng = 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.
1234567891011 | Sub SelectTableData ()' **IMPORTANTE**'Clique em qualquer célula da tabela antes de executar a macro'Mova uma linha para baixo usando Offset e, em seguida, reduza o tamanho do intervalo em uma linhaDefina tbl = ActiveCell.CurrentRegion.Offset (1, 0) .Resize (tbl.Rows.Count - 1, _tbl.Columns.Count)'Os dados são selecionados, excluindo a linha do cabeçalhotbl.Address.SelectEnd Sub |
Gravar array 2-D para intervalo
Outro uso comum é gravar uma matriz bidimensional em uma folha. Uma vez que o intervalo a ser escrito deve corresponder ao tamanho da matriz, que normalmente não é conhecido com antecedência, o método Resize é usado para definir o intervalo de saída
O exemplo abaixo irá ler os dados no intervalo A1: E10 na planilha ativa em uma matriz e escrever a matriz na planilha ‘Saída’ começando na célula A1:
123456 | Sub WriteArray ()'Leia os dados para um arraydados = intervalo ("A1: E10"). Valor'Redimensione o intervalo de saída e escreva o arrayPlanilhas ("Saída"). Faixa ("A1"). Redimensionar (UBound (dados, 1), UBound (dados, 2)). Valor = dadosEnd Sub |
Escrito por: Vinamra Chandra