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.