Subcadena de VBA

Subcadena de Excel VBA

SubString es una parte de la cadena o parte o el carácter de la cadena se llama "SubString". Hay tres tipos de función de subcadena en VBA LEFT, RIGHT y MID son similares a las subcadenas de la hoja de trabajo en Excel.

Una cadena no es más que una serie de caracteres y los caracteres pueden ser alfabetos, números, caracteres especiales y también combinar todos estos.

A menudo, en Excel, cuando trabajamos con datos, que es la cadena que necesitamos para obtener solo la parte de la cadena para facilitar nuestro propósito. Es posible que no necesitemos usar la cadena completa, pero solo necesitamos una parte de la cadena para nuestro uso. Por ejemplo, si tiene el nombre "Sachin Tendulkar", es posible que solo necesite la primera parte del nombre, es decir, solo "Sachin". Esto se denomina SubString de la cadena en Excel VBA. Para manejar estas cadenas, tenemos funciones integradas en la función TEXTO en la categoría de Excel.

En este artículo, discutiremos cómo obtener la subcadena de la cadena completa en VBA.

¿Cómo utilizar las funciones de subcadena en VBA?

Para extraer la subcadena de la cadena, tenemos algunas de las funciones de texto integradas y algunas de las funciones importantes son LEFT, RIGHT, INSTR y MID en Excel. La función Instr servirá como función de apoyo para las otras tres funciones.

Veremos cómo utilizar estas funciones para extraer las subcadenas de forma práctica. Lea los ejemplos siguientes para comprenderlos.

Puede descargar esta plantilla de Excel de subcadena de VBA aquí - Plantilla de Excel de subcadena de VBA

Ejemplo n. ° 1: uso de la función izquierda

Si tiene el nombre completo como “Sachin Tendulkar” y solo necesita extraer el primer nombre como subcadena, use el siguiente código para obtener el mismo.

Paso 1: Cree un nombre de macro y defina dos variables como Cadena.

Código:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName As String End Sub 

Paso 2: Ahora asigne el nombre “Sachin Tendulkar” a la variable FullName .

Código:

 Sub SubString_Example1 () Dim FullName como cadena Dim FirstName como cadena FullName = "Sachin Tendulkar" End Sub 

Paso 3: Ahora la variable FullName contiene el valor de "Sachin Tendulkar". Ahora necesitamos extraer la subcadena de Excel VBA del nombre del nombre completo. Por lo tanto, asigne el valor de la variable FirstName a la función LEFT.

Código:

 Sub SubString_Example1 () Dim FullName como cadena Dim FirstName como cadena FullName = "Sachin Tendulkar" FirstName = Left (End Sub 

Paso 4: El primer argumento de la función VBA LEFT es String, que es el valor completo o la cadena completa. En este ejemplo, nuestro valor completo o cadena es "Sachin Tendulkar" que se asigna a la variable FullName.

Así que proporcione la variable FullName como argumento.

Código:

 Sub SubString_Example1 () Dim FullName como cadena Dim FirstName como cadena FullName = "Sachin Tendulkar" FirstName = Extremo izquierdo Sub 

Paso 5: El siguiente  argumento es cuántos caracteres necesitamos de la cadena que hemos proporcionado, por lo que en este caso, necesitamos el nombre " Sachin ", por lo que necesitamos 6 caracteres del lado izquierdo.

Código:

 Sub SubString_Example1 () Dim FullName como cadena Dim FirstName como cadena FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) End Sub 

Paso 6: Ahora muestre el resultado en un cuadro de mensaje en VBA.

Código:

 Sub SubString_Example1 () Dim FullName como cadena Dim FirstName como cadena FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) MsgBox FirstName End Sub 

Paso 7: Ejecute la macro, vea el nombre como una subcadena en el cuadro de mensaje.

Ejemplo n. ° 2 - Obtener subcadena de la derecha

Como hemos extraído la subcadena de la izquierda de manera similar, también podemos extraer de la derecha. Tome el mismo nombre como ejemplo.

Paso 1: Defina dos variables como Cadena.

Código:

 Sub SubString_Example2 () Dim FullName como cadena Dim LastName como cadena End Sub 

Paso 2: como de costumbre, asigne el valor a la variable FullName como "Sachin Tendulkar"

Código:

 Sub SubString_Example2 () Dim FullName como cadena Dim LastName como cadena FullName = "Sachin Tendulkar" End Sub 

Paso 3: Ahora para la variable Apellido asigne el valor a través de la función de Excel DERECHA.

Código:

 Sub SubString_Example2 () Dim FullName como cadena Dim LastName como cadena FullName = "Sachin Tendulkar" LastName = Right (End Sub 

Paso 4: String es nuestro FullName, así que proporcione la variable.

Código:

 Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, End Sub 

Paso 5: La longitud es la cantidad de caracteres que necesitamos del lado derecho, necesitamos 9 caracteres del lado derecho.

Código:

 Sub SubString_Example2 () Dim FullName como cadena Dim LastName como cadena FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) End Sub 

Paso 6: muestra este valor en el cuadro de mensaje .

Código:

 Sub SubString_Example2 () Dim FullName como cadena Dim LastName como cadena FullName = "Sachin Tendulkar" LastName = Derecha (FullName, 9) MsgBox LastName End Sub 

Paso 7: Ejecuta la macro, veremos el apellido en el cuadro de mensaje.

Ejemplo n. ° 3: uso de la función Instr

In the above examples, we had only one name and we have directly supplied how many characters we need from the left & right. But in case of many names first name & last name characters are not the same, it will differ from name to name. In those cases, we cannot supply the number of characters directly so we can use the function Instr.

Instr function will return the supplied character position in the string. For an example look at the below code.

Code:

 Sub SubString_Example3() Dim Position As String Position = InStr(1, "Sachin", "a") MsgBox Position End Sub 

InStr(1, “Sachin”, “a”) this will identify the position of the letter “a” as the first appearance in the string “Sachin”. In this case letter “a” is in the second position. So we will get 2 as the result in the message box.

Like this, we can use the Instr function to find the space character between the first name and last name.

For an example look at the below name I have in excel sheet.

Using LEFT, RIGHT, and Instr function we can extract the substrings. Below is the code to extract the First Name.

Code:

 Sub FirstName() Dim K As Long Dim LR As Long LR = Cells(Rows.Count, 1).End(xIUp).Row For K = 2 To LR Cells(K, 2).Value = Left(Cells(K, 1).Value, InStr(1, Cells(K, 1).Value, "") - 1) Next K End Sub 

Run the macro and see the first name as a substring in the message box.

Use below code to extract the last name as a substring.

Code:

 Sub LastName() Dim K As Long Dim LR As Long LR = Cells(Rows.Count, 1).End(xIUp).Row For K = 2 To LR Cells(K, 3).Value = Right(Cells(K, 1).Value, Len(Cells(K, 1)) - InStr(1, Cells(K, 1).Value, "")) Next K End Sub 

Run the macro and we will see the last name in the message box.

I have assigned the macro button to the worksheet, download the workbook, and use them.