Preenchimento automático em VBA
Este artigo demonstra como usar o Preenchimento automático no VBA.
O Preenchimento automático é uma ótima ferramenta do Excel quando os dados são repetitivos ou sequenciais (como dias da semana, datas, meses do ano etc.). Normalmente, preencheríamos as primeiras células com os dados necessários e, em seguida, usaríamos o Preenchimento automático para copiar os dados necessários para um intervalo selecionado.
Tudo isso pode ser feito usando uma macro VBA.
Preenchimento automático usando números incrementais
Em primeiro lugar, em nosso código, podemos declarar duas variáveis Range.
Seleção1 é o intervalo com os dados a serem preenchidos automaticamente - por exemplo, 1 e 2.
Seleção2 é o inteira intervalo para preenchimento automático, isso inclui o primeiro intervalo mais os espaços em branco para preenchimento automático.
Em seguida, usamos o método AutoPreenchimento para preencher o segundo intervalo de seleção.
123456789101112131415 | Public Sub MyAutoFill ()'por easyexcel.net'Declarar Variáveis de AlcanceDim selection1 como rangeDim selection2 como range'Definir variáveis de intervalo = seus respectivos intervalosDefinir seleção1 = Folha1.Range ("A1: A2")Definir seleção2 = Folha1.Range ("A1: A12")'Preenchimento Automáticoselection1.AutoFill Destination: = selection2End Sub |
Podemos então executar a macro para intervalo de preenchimento automático (A1: A12).
Quando estamos usando o método de preenchimento automático, podemos selecionar o tipo de preenchimento automático que desejamos realizar. No exemplo acima, não especificamos o tipo de Preenchimento automático, o que significa que o tipo padrão foi usado - neste caso, incrementando os números em 1 em cada linha.
Preenchimento automático usando meses
A macro para preenchimento automático usando meses é quase idêntica à usada para incrementar números, com uma exceção importante.
1234567891011 | Public Sub AutoFillMonths ()'por easyexcel.net'Declarar Variáveis de AlcanceDim selection1 como rangeDim selection2 como range'Definir variáveis de intervalo = seus respectivos intervalosDefinir seleção1 = Folha1.Range ("A1: A2")Definir seleção2 = Folha1.Range ("A1: A12")'Preencher automaticamente os mesesDestino do Preenchimento automático: = seleção2, Tipo: = xlFillMonthsEnd Sub |
Quando preenchemos o tipo de preenchimento automático, temos uma série de constantes do Excel para escolher. Se deixarmos isso de fora, o Excel determinará o tipo de dados a preencher a partir dos dados originais fornecidos.
O Excel é capaz de selecionar séries padrão como meses, dias da semana e números incrementais sem a necessidade de usar o argumento Tipo.
Preenchimento automático usando xlFillCopy
Se quisermos usar uma macro AutoPreenchimento para copiar as informações para novas células, podemos usar a constante xlFillCopy.
1234567 | Public Sub AutoFillCopy ()Dim Selection1 As RangeDim Selection2 As RangeDefinir Seleção1 = Folha1.Range ("A1: A1")Definir Seleção2 = Folha1.Range ("A1: A12")Destino Selection1.AutoFill: = Seleção2, Tipo: = xlFillCopyEnd Sub |
A execução dessa macro copiaria os dados em Intervalo (“A1”) até Intervalo (“A1: A12”) em vez de preencher automaticamente as células com meses subsequentes a partir de “Jan”.
Preenchimento automático usando xlFlashFill
Quando precisamos converter texto em colunas no Excel, podemos usar a opção de texto em colunas ou podemos usar uma opção chamada Preenchimento Flash. Isso é extremamente útil no VBA.
Pegue os seguintes dados, por exemplo:
Podemos digitar o sobrenome “Tolley” na célula B2 e, em seguida, usar uma macro para preencher o restante dos dados.
1234567 | Sub FlashFill ()Dim Selection1 As RangeDim Selection2 As RangeDefinir Seleção1 = Faixa ("B2: B2")Definir Seleção2 = Faixa ("B2: B15")Destino Selection1.AutoFill: = Seleção2, Tipo: = xlFlashFillEnd Sub |
Podemos então repetir isso nas colunas C, D e E para obter os dados restantes.
1234567891011 | Definir Seleção1 = Faixa ("C2: C2")Definir Seleção2 = Faixa ("C2: C15")Destino Selection1.AutoFill: = Seleção2, Tipo: = xlFlashFillDefinir Seleção1 = Faixa ("D2: D2")Definir Seleção2 = Faixa ("D2: D15")Destino Selection1.AutoFill: = Seleção2, Tipo: = xlFlashFillDefinir Seleção1 = Faixa ("E2: E2")Definir Seleção2 = Faixa ("E2: E15")Destino Selection1.AutoFill: = Seleção2, Tipo: = xlFlashFill |
Cada coluna será preenchida com os dados apropriados com base no valor da linha 2.