Autocompletar con una macro - Ejemplos de código VBA

Autocompletar en VBA

Este artículo muestra cómo utilizar Autocompletar en VBA.

Autocompletar es una gran herramienta en Excel cuando los datos son repetitivos o secuenciales (como días de la semana, fechas, meses del año, etc.). Normalmente llenaríamos el primer par de celdas con los datos requeridos y luego usaríamos Autocompletar para copiar los datos requeridos en un rango seleccionado.

Todo esto se puede hacer usando una macro VBA.

Autocompletar usando números crecientes

En primer lugar, en nuestro código, podemos declarar dos variables de rango.

Selection1 es el rango con los datos para autocompletar, por ejemplo 1 y 2.

Selection2 es el completo rango para autocompletar, esto incluye el primer rango más los espacios en blanco para autocompletar.

Luego usamos el método Autocompletar para llenar el segundo rango de selección.

123456789101112131415 Public Sub MyAutoFill ()'por easyexcel.net'Declarar variables de rangoSelección de atenuación1 como rangoSelección de atenuación 2 como rango'Establecer variables de rango = sus respectivos rangosEstablecer selección1 = Hoja1.Rango ("A1: A2")Establecer selección2 = Hoja1.Rango ("A1: A12")'Autocompletarselection1.Autocompletar Destino: = selection2End Sub

Luego, podemos ejecutar la macro en Autofill Range (A1: A12).

Cuando utilizamos el método Autocompletar, podemos seleccionar el tipo de Autocompletar que deseamos realizar. En el ejemplo anterior, no especificamos el tipo de Autocompletar, lo que significa que se usó el tipo predeterminado, en este caso, incrementando los números en 1 en cada línea.

Autocompletar usando meses

La macro para autocompletar usando meses es casi idéntica a la que se usa para incrementar números, con una excepción importante.

1234567891011 Meses de autocompletar secundarios públicos ()'por easyexcel.net'Declarar variables de rangoSelección de atenuación1 como rangoSelección de atenuación 2 como rango'Establecer variables de rango = sus respectivos rangosEstablecer selección1 = Hoja1.Rango ("A1: A2")Establecer selección2 = Hoja1.Rango ("A1: A12")'Autocompletar los mesesDestino de Autocompletar: = selección2, Tipo: = xlFillMonthsEnd Sub

Cuando completamos el tipo de autocompletar, se nos da una serie de constantes de Excel para elegir. Si dejamos esto fuera, Excel determinará el tipo de datos a completar a partir de los datos originales proporcionados.

Sin embargo, Excel puede seleccionar series estándar como meses, días de la semana y números incrementales sin la necesidad de usar el argumento Tipo.

Autocompletar usando xlFillCopy

Si queremos usar una macro Autocompletar para copiar la información a nuevas celdas, podemos usar la constante xlFillCopy.

1234567 Autocompletar copia secundaria pública ()Dim Selection1 como rangoDim Selection2 como rangoEstablecer Selection1 = Sheet1.Range ("A1: A1")Establecer Selection2 = Sheet1.Range ("A1: A12")Selection1.Autocompletar Destino: = Selection2, Tipo: = xlFillCopyEnd Sub

La ejecución de esta macro copiaría los datos en el rango ("A1") hasta el rango ("A1: A12") en lugar de llenar automáticamente las celdas con los meses siguientes a partir de "enero".

Autocompletar usando xlFlashFill

Cuando necesitamos convertir texto a columnas en Excel, podemos usar la opción de texto a columnas, o podemos usar una opción llamada Relleno Flash. Esto es extremadamente útil en VBA.

Tome los siguientes datos, por ejemplo:

Podemos escribir el apellido "Tolley" en la celda B2 y luego usar una macro para Flashfill el resto de los datos.

1234567 Sub FlashFill ()Dim Selection1 como rangoDim Selection2 como rangoEstablecer Selección1 = Rango ("B2: B2")Establecer Selección2 = Rango ("B2: B15")Selection1.AutoFill Destino: = Selection2, Tipo: = xlFlashFillEnd Sub

Luego podemos repetir esto en las columnas C, D y E para obtener los datos restantes.

1234567891011 Establecer Selección1 = Rango ("C2: C2")Establecer Selección2 = Rango ("C2: C15")Selection1.AutoFill Destino: = Selection2, Tipo: = xlFlashFillEstablecer Selección1 = Rango ("D2: D2")Establecer Selección2 = Rango ("D2: D15")Selection1.AutoFill Destino: = Selection2, Tipo: = xlFlashFillEstablecer Selección1 = Rango ("E2: E2")Establecer Selección2 = Rango ("E2: E15")Selection1.AutoFill Destino: = Selection2, Tipo: = xlFlashFill

Cada columna se llenará con los datos apropiados según el valor de la fila 2.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave