Cómo utilizar el desplazamiento de rango de VBA (11 formas)

  • Compartir Este
Hugh West

Si busca algunas de las formas más sencillas de utilizar VBA Range Offset, entonces este artículo le merecerá la pena. Empecemos con las formas de utilizar la función VBA Desplazamiento de rango.

Descargar el cuaderno de ejercicios

Desplazamiento de rangos VBA.xlsm

11 Maneras de Usar el Desplazamiento de Rango VBA

Tengo la siguiente tabla de datos que contiene información de algunos alumnos de un colegio. Utilizando este conjunto de datos, explicaré las formas de utilizar el VBA Desplazamiento de rango.

Para ello, he utilizado Microsoft Excel 365 puede utilizar cualquier otra versión según le convenga.

Método-1: Selección de una celda mediante el uso de VBA Rango

Aquí, seleccionaremos una celda que contenga el nombre Daniel Defoe. Para ello, utilizaremos el Función RANGE en VBA .

Paso-01 :

➤Ir a Desarrollador Tab>> Visual Basic Opción

Entonces, el Editor de Visual Basic se abrirá.

➤Ir a Inserte Tab>> Módulo Opción

Después de eso, un Módulo se creará.

Paso-02 :

➤Escribe el siguiente código

 Sub SelectCell() Range("B8").Select End Sub 

Seleccionará la celda B8 .

➤Prensa F5

Resultado :

De este modo, obtendrá la celda que contiene Daniel Defoe seleccionado.

Más información: Cómo utilizar el objeto Range de VBA en Excel

Método-2: Selección de un grupo de celdas contiguas mediante el uso de VBA Rango

Puede seleccionar un rango de celdas contiguas como el Nombre del alumno y la columna Resultado columna de la tabla siguiente siguiendo este método.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub ContiguousCells() Range("B5:C10").Select End Sub 

Seleccionará las celdas de B5 a C10 .

➤Prensa F5

Resultado :

Después, obtendrá las celdas en Columna B y Columna C seleccionado.

Método-3: Selección de un grupo de celdas no contiguas mediante el uso de VBA Rango

Supongamos que desea seleccionar los alumnos denominados William David y Michael Anthony incluidos sus respectivos Dirección de correo electrónico Para seleccionar estas celdas no congruentes puede seguir este método.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub nonContiguous() Range("B6,D6,B9,D9").Select End Sub 

Seleccionará las celdas B6 , D6 , B9, y D9 .

➤Prensa F5

Resultado :

A continuación, obtendrá las celdas que contienen el nombre del alumno William David , Michael Anthony, y sus respectivos Dirección de correo electrónico seleccionado.

Método-4: Selección de un grupo de celdas no contiguas y un rango mediante el uso de VBA Rango

Puede seleccionar un rango de celdas y algunas celdas no contiguas simultáneamente siguiendo este método.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub nonContiguouswithrange() Range("B5:B10,D6,D10").Select End Sub 

Seleccionará el rango de celdas en el rango B5:B10 y las otras dos células D6 , D10 .

➤Prensa F5

Resultado :

A continuación, obtendrá las celdas de la columna Nombre del alumno y dos Correo electrónico para William David y Donald Paul seleccionado.

Método-5: Selección de un Rango mediante el Desplazamiento de Rango VBA

Puede seleccionar un rango de celdas en el Columna Nombre del alumno utilizando el Función OFFSET .

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub selectrangeoffset() Range("A1:A6").Offset(4, 1).Select End Sub 

Al principio, Rango("A1:A6") seleccionará la gama A1:A6 y luego Desplazamiento(4, 1) se moverá 4 filas hacia abajo desde la celda A1 y 1 columna a la derecha. A continuación, el mismo número de celdas del rango A1:A6 se seleccionará desde aquí.

➤Prensa F5

Resultado :

De este modo, seleccionará la columna Nombre del alumno .

Método 6: Desplazamiento negativo de rango VBA

Puede seleccionar el Columna Id. de correo electrónico siguiendo este método.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub negativerangeoffset() Range("F11:F16").Offset(-6, -2).Select End Sub 

Al principio, Rango("F11:F16") seleccionará la gama F11:F16 y luego Desplazamiento(-6, -2) se moverá 6 filas hacia arriba desde la celda F11 y 2 columnas a la izquierda. Después, el mismo número de celdas en el rango F11:F16 se seleccionará desde aquí.

➤Prensa F5

Resultado :

A continuación, podrá seleccionar la columna Dirección de correo electrónico .

Lecturas similares:

  • VBA para cada celda del rango en Excel (3 métodos)
  • Cómo contar texto en Excel (7 trucos fáciles)

Método-7: Seleccionar un Rango con respecto a la Celda Activa

Aquí tenemos una célula activa (célula A1 ) y con respecto a esta celda, seleccionaremos el rango de datos en este método.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub actvcell() Range(activecell.Offset(4, 1), activecell.Offset(9, 3)).Select End Sub 

Toma, activecell es A1

La primera parte activecell.Offset(4, 1) seleccionará una celda 4 filas hacia abajo y 1 columna a la derecha de la celda A1 y la segunda parte activecell.Offset(9, 3) seleccionará una celda 9 filas hacia abajo y 3 columnas a la derecha de la celda A1 .

Por último, se seleccionarán todas las celdas entre estas dos celdas.

➤Prensa F5

Resultado :

A continuación, podrá seleccionar todo el intervalo de datos.

Método 8: Copiar un intervalo

Si desea copiar un rango de celdas, puede seguir este método.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub copyrangeoffset() Range("A1:A6").Offset(4, 1).Copy End Sub 

Al principio, Rango("A1:A6") seleccionará la gama A1:A6 y luego Desplazamiento(4, 1) se moverá 4 filas hacia abajo desde la celda A1 y 1 columna a la derecha. A continuación, el mismo número de celdas del rango A1:A6 se seleccionará desde aquí.

Por último, copiará los valores del intervalo B5:B10 .

➤Prensa F5

Resultado :

A continuación, podrá copiar el intervalo de datos en el archivo Columna Nombre del alumno .

Método 9: Borrar un intervalo

A continuación, mostraremos la forma de eliminar un rango de datos utilizando VBA código.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrangeoffset() Range("F11:F17").Offset(-7, -2).Delete End Sub 

En primer lugar, Rango("F11:F17") seleccionará la gama F11:F17 y luego Desplazamiento(-7, -2) se moverá 7 filas hacia arriba desde la celda F11 y 2 columnas a la izquierda. Después, el mismo número de celdas en el rango F11:F17 se seleccionará desde aquí.

Por último, eliminará el rango D4:D10 .

➤Prensa F5

Resultado :

De este modo, copiará el intervalo de datos en el archivo Columna Id. de correo electrónico .

Método-10: Utilizar el Desplazamiento de Rango VBA para Introducir un Valor

Aquí, tenemos una celda vacía (hemos eliminado el valor de esta celda para explicar este método) en la tabla Columna Nombre del alumno y queremos rellenarlo con el nombre Joseph Michael Utilizando un VBA podemos introducir fácilmente este valor.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub valuerangeoffset() Range("A1").Offset(6, 1).Value = "Joseph Michael" End Sub 

En primer lugar, Rango("A1") seleccionará la celda A1 y luego Desplazamiento(6, 1) se moverá 6 filas hacia abajo desde la celda A1 y 1 columna a la derecha. Después, la celda B7 y, por último, introducirá el valor "Joseph Michael" en esta célula.

➤Prensa F5

Resultado :

De este modo, obtendrá el nombre Joseph Michael en celda B7 .

Método-11: Utilizar el Desplazamiento de Rango VBA para Obtener la Salida

Supongamos que desea escribir Aprobado o Falta de correspondencia a los nombres de los alumnos en función de la Columna de resultados donde Pase o Falla se ha escrito entre corchetes. Para encontrar esta subcadena en el archivo Columna de resultados y anótelo en el Columna Aprobado/Suspenso siga este método.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub CheckSubstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.value, "Pass")> 0 Then cell.Offset(0, 1).value = "Passed" Else cell.Offset(0, 1).value = "Failed" End If Next cell End Sub 

Aquí, el rango de celdas C5:C10 es seleccionado por Rango("C5:C10") que es el Columna de resultados

InStr(cell. value, "Pass")> 0 es la condición en la que el número es mayor que cero (cuando la celda contiene "Pass" ) entonces la siguiente línea continuará y dará la salida en la celda adyacente como Aprobado Aquí, la celda adyacente será seleccionada por cell.Offset(0, 1) lo que significa que se moverá 1 columna a la derecha de la celda de entrada.

Si la condición se convierte en falsa significa que una celda no contiene ningún "Pass" entonces la línea bajo Si no se ejecutará y dará el valor de salida en la celda adyacente como Fallido .

Este bucle continuará para cada celda.

➤Prensa F5

Resultado :

A continuación, obtendrá los resultados Aprobado o suspenso en el Aprobado/Suspenso columna.

Sección práctica

Para hacer prácticas por su cuenta hemos proporcionado un Práctica en una hoja denominada Práctica Por favor, hazlo tú mismo.

Conclusión

En este artículo, he tratado de cubrir las formas más fáciles de utilizar VBA Espero que te resulte útil. Si tienes alguna sugerencia o pregunta, no dudes en compartirla con nosotros.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.