Función derecha de VBA

Función derecha en VBA Excel

La función derecha es la misma que en la función de hoja de trabajo y en VBA, el uso de esta función es que nos da la subcadena de una cadena dada, pero la búsqueda se realiza de derecha a izquierda de la cadena, este es un tipo de función de cadena en VBA utilizado con el método de función application.worksheet.

DERECHA Función en Excel VBA que se utiliza para extraer caracteres del lado derecho de los valores de texto proporcionados. En Excel, tenemos muchas funciones de texto para tratar con datos basados ​​en texto. Algunas de las funciones útiles son LEN, LEFT, RIGHT, MID para extraer caracteres de los valores de texto. El ejemplo común del uso de estas funciones es extraer el nombre y apellido por separado del nombre completo.

La fórmula CORRECTA también está en la hoja de trabajo. En VBA necesitamos confiar en la clase de función de la hoja de trabajo para acceder a la función VBA DERECHA en lugar de tener la función DERECHA incorporada en VBA también.

Ahora eche un vistazo a la siguiente sintaxis de la fórmula VBA RIGHT.

  • Cadena: este es nuestro valor y, a partir de este valor, estamos tratando de extraer los caracteres del lado derecho de la cadena.
  • Longitud: De la Cadena suministrada cuántos caracteres necesitamos. Si necesitamos cuatro caracteres del lado derecho, podemos proporcionar el argumento como 4.

Por ejemplo, si la cadena es "Teléfono móvil" y si queremos extraer solo la palabra "Teléfono", podemos proporcionar el argumento como se muestra a continuación.

DERECHA ("Teléfono móvil", 5)

La razón por la que mencioné 5 es porque la palabra "Teléfono" tiene 5 letras. En la siguiente sección del artículo, veremos cómo podemos usarlo en VBA.

Ejemplos de función derecha de Excel VBA

Los siguientes son ejemplos de la función derecha VBA Excel.

Puede descargar esta plantilla de Excel de función derecha de VBA aquí - Plantilla de Excel de función derecha de VBA

Ejemplo 1

Les mostraré un ejemplo sencillo para iniciar el trámite. Suponga que tiene la cadena "Nueva York" y si desea extraer 3 caracteres de la derecha, siga los pasos a continuación para escribir el código.

Paso 1: declare la variable como cadena VBA.

Código:

 Sub Right_Example1 () Dim k As String End Sub 

Paso 2: Ahora para esta variable, asignaremos el valor aplicando la función DERECHA.

Código:

 Sub Right_Example1 () Dim k As String k = Right (End Sub 

Paso 3: el primer  argumento es String y nuestra cadena para este ejemplo es "Nueva York".

Código:

 Sub Right_Example1 () Dim k As String k = Right ("Nueva York", End Sub 

Paso 4: El siguiente paso es cuántos caracteres necesitamos de la cadena proporcionada. En este ejemplo, necesitamos 3 caracteres.

Código:

 Sub Right_Example1 () Dim k As String k = Right ("Nueva York", 3) End Sub 

Paso 5: Tenemos 2 argumentos con los que lidiar, así que hemos terminado. Ahora asigne el valor de esta variable en el cuadro de mensaje en VBA.

Código:

 Sub Right_Example1 () Dim k As String k = Right ("Nueva York", 3) MsgBox k End Sub 

Ejecute el código usando la tecla F5 o manualmente y vea el resultado en un cuadro de mensaje.

En la palabra "Nueva York" del lado derecho, 3 caracteres son "ork".

Ahora cambiaré la longitud de 3 a 4 para obtener el valor completo.

Código:

 Sub Right_Example1 () Dim k As String k = Right ("Nueva York", 4) MsgBox k End Sub 

Ejecute este código manualmente o usando la tecla F5, obtendremos "York".

Ejemplo # 2

Ahora eche un vistazo a un ejemplo más, esta vez considere el valor de la cadena como "Michael Clarke".

Si proporciona la longitud como 6, obtendremos "Clarke" como resultado.

Código:

 Sub Right_Example1 () Dim k As String k = Right ("Michael Clarke", 6) MsgBox k End Sub 

Ejecute este código usando la tecla F5 o manualmente para ver el resultado.

Función dinámica derecha en Excel VBA

Si observa nuestros dos ejemplos anteriores, hemos proporcionado los números de los argumentos de longitud manualmente. Pero este no es el proceso correcto para hacer el trabajo.

En cada una de las cadenas, los caracteres del lado derecho son diferentes en cada caso. No podemos hacer referencia a la longitud de los caracteres manualmente para cada valor de manera diferente. Aquí donde la otra función de cuerda "Instr" juega un papel vital.

La función Instr devuelve la posición del carácter proporcionado en el valor de cadena proporcionado. Por ejemplo, Instr (1, "Bangalore", "a") devuelve la posición de la letra "a" en la cadena "Bangalore" desde el primer carácter (1) .

En este caso, el resultado es 2 porque desde la posición del primer carácter de la letra “a” es la 2ª posición.

Si cambio la posición inicial de 1 a 3, devolverá 5.

Instr (3, ”Bangalore”, ”a”) .

La razón por la que devuelve 5 es porque mencioné la posición inicial para buscar la letra “a” solo a partir de la 3ª letra. Entonces, la posición del segundo que apareció "a" es 5.

Entonces, para encontrar el carácter de espacio de cada cadena, podemos usar esto. Una vez que encontramos la posición del carácter de espacio, necesitamos restar eso de la longitud total de la cadena usando LEN.

Por ejemplo, en la cadena "Nueva York", el número total de caracteres es 8, incluido el espacio, y la posición del carácter de espacio es el cuarto. Entonces 8-4 = 4 right extraerá 4 caracteres de la derecha.

Ahora, mire el código a continuación para su referencia.

Código:

 Sub Right_Example3 () Dim k As String Dim L As String Dim S As String L = Len ("Michael Clarke") S = InStr (1, "Michael Clarke", "") k = Right ("Michael Clarke", L - S) MsgBox k End Sub 

En el código anterior, la variable "L" devolverá 14 y la variable "S" devolverá 8.

En la fórmula de la derecha de VBA, he aplicado L - S, es decir, 14-8 = 6. Entonces, del lado derecho, 6 caracteres, es decir, "Clarke".

Bucles con función derecha en Excel VBA

Cuando necesitamos aplicar la función VBA DERECHA con muchas celdas, necesitamos incluir esto dentro de los bucles. Por ejemplo, mire la imagen de abajo.

No podemos aplicar muchas líneas del código para extraer una cadena del lado derecho. Entonces necesitamos incluir bucles. El siguiente código lo hará para los datos anteriores.

Código:

 Sub Right_Example4 () Dim k As String Dim L As String Dim S As String Dim a As Integer For a = 2 To 5 L = Len (Cells (a, 1) .Value) S = InStr (1, Cells (a, 1) ) .Value, "") Celdas (a, 2) .Valor = Derecha (Celdas (a, 1), L - S) Siguiente a End Sub 

El resultado de este código es el siguiente.