Función de texto Excel VBA
La función de texto VBA solo se usa en VBA. Parece que convierte los números a texto. Pero en realidad, convierte números a cualquier formato como hora, fecha o rango de números. Para esto, debemos permitir que esta función se habilite como Clase.
Si vemos el argumento del texto VBA, entonces veremos que consiste en Arg1 y Arg2 como se muestra a continuación.
- Arg1 : aquí colocaremos el valor que queremos convertir en el formato estándar.
- Arg2 : y aquí seleccionaremos el formato en el que queremos ver la salida como.
Ambas variables se definirán como String.
¿Cómo utilizar la función de texto Excel VBA?
Aprenderemos cómo usar una función de texto VBA con algunos ejemplos en Excel.
Puede descargar esta plantilla de Excel de texto de VBA aquí - Plantilla de Excel de texto de VBAFunción de texto VBA - Ejemplo # 1
Vamos a convertir el texto o los números al formato estándar en todos los próximos ejemplos de diferentes maneras.
Siga los pasos a continuación para usar la función de texto en VBA.
Paso 1: abra un módulo que está disponible en la pestaña del menú Insertar como se muestra a continuación.
Paso 2: en el módulo VBA abierto, escriba el subprocedimiento del texto VBA como se muestra a continuación.
Código:
Sub VBA_Text1 () End Sub
Paso 3: Según la sintaxis del texto de VBA, hay dos argumentos que necesitaremos. Por lo tanto, defina la primera variable como Cadena donde daremos la entrada como se muestra a continuación.
Código:
Sub VBA_Text1 () Dim Input1 como String End Sub
Paso 4: Ahora defina otra variable donde obtendremos la salida. Y esto también sería como String.
Código:
Sub VBA_Text1 () Dim Input1 como String Dim Output como String End Sub
Paso 5: Ahora considere cualquier número aleatorio que necesitemos convertir al formato estándar. Este podría ser el número que queremos ver o podría ser cualquier número aleatorio. Supongamos que si consideramos un número decimal 0.123 y vemos lo que obtendríamos.
Código:
Sub VBA_Text1 () Dim Input1 como String Dim Output como String Input1 = 0.123 End Sub
Paso 6: Ahora en la otra variable definida que es Salida, la usaremos para poner Texto VBA. Ahora, esta función se utilizará como función de hoja de trabajo como se muestra a continuación.
Paso 7: Seleccione la función de texto VBA de la lista de funciones incorporada. Ahora, según la sintaxis, usaremos nuestra variable y formato en el que queremos convertir eso como formato estándar Arg1 y en el que queremos convertir ese número seleccionado.
Código:
Sub VBA_Text1 () Dim Input1 como String Dim Output como String Input1 = 0.123 Output = WorksheetFunction.Text (End Sub
Paso 8: En Arg1 escribimos la variable Input1 que tiene nuestro número que necesitamos convertir y Arg2 tendrá el formato HH: MM: SS AM / PM.
Código:
Sub VBA_Text1 () Dim Input1 como String Dim Output como String Input1 = 0.123 Output = WorksheetFunction.Text (Input1, "hh: mm: ss AM / PM") End Sub
Paso 9: Ahora usa MsgBox para ver qué viene como Salida.
Código:
Sub VBA_Text1 () Dim Input1 como String Dim Output como String Input1 = 0.123 Output = WorksheetFunction.Text (Input1, "hh: mm: ss AM / PM") MsgBox Output End Sub
Paso 10: Ahora ejecuta el código presionando la tecla F5 o haciendo clic en el botón Reproducir. Recibiremos el cuadro de mensaje con un mensaje como 02:57:07 AM .
Veremos otro momento si elegimos otro número.
Paso 11: Ahora cambiemos el número de entrada como 12345 y cambie el formato de salida en DD-MMM-AAAA como se muestra a continuación.
Código:
Sub VBA_Text2 () Dim Input1 como String Dim Output como String Input1 = 12345 Output = WorksheetFunction.Text (Input1, "DD-MM-aaaa") MsgBox Output End Sub
Paso 12: Ahora vuelve a ejecutar el código. La fecha será el 18 de octubre de 1933.
Si sabemos el número exacto por el cual podemos obtener una fecha u hora exacta, entonces será mejor.
Función de texto VBA - Ejemplo # 2
Hay otra forma directa de aplicar el texto VBA. Para esto, ingresaremos algunos números en la hoja de Excel como se muestra a continuación.
Siga los pasos a continuación para usar la función de texto en VBA.
Paso 1: en un módulo, escriba la subcategoría del texto VBA como se muestra a continuación.
Código:
Sub VBA_Text3 () End Sub
Paso 2: Seleccione el rango de celdas donde queremos ver la salida. Consideremos que esas células son de B1 a B5.
Código:
Sub VBA_Text3 () Rango ("B1: B5"). Valor Fin Sub
Paso 3: Ahora selecciona el rango de celdas que necesitamos convertir. Aquí ese rango es de la celda A1 a A5 junto con la función de hoja de trabajo.
Código:
Sub VBA_Text3 () Rango ("B1: B5"). Valor = Rango ("A1: A5"). Hoja de trabajo. End Sub
Paso 4: Seleccione la función Índice junto evaluándola.
Código:
Sub VBA_Text3 () Range ("B1: B5"). Value = Range ("A1: A5"). Worksheet.Evaluate ("INDEX (End Sub
Paso 5: Ahora considere la función Texto y seleccione el rango que necesitamos convertir. Y el formato estará en múltiples ceros.
Código:
Sub VBA_Text3 () Range ("B1: B5"). Value = Range ("A1: A5"). Worksheet.Evaluate ("INDEX (TEXT (A1: A5, " "'000000" "), )") End Sub
Paso 6: Ahora ejecute el código presionando la tecla F5 o haciendo clic en el botón Reproducir. Veremos que los números disponibles en la columna A ahora se convirtieron en texto con múltiples ceros, lo que lleva a números de 6 dígitos en la columna B.
Ahora veamos, qué pasaría si cambiamos el formato de salida de ceros a formato de hora.
Paso 7: en Arg2, coloque el formato de hora como HH: MM: SS y cambie la celda del rango de salida a C1 a C5 sin alterar la salida obtenida del código anterior.
Código:
Sub VBA_Text3 () Range ("C1: C5"). Value = Range ("C1: C5"). Worksheet.Evaluate ("INDEX (TEXT (A1: A5, " "hh: mm: ss" "), )" ) Fin Sub
Paso 8: Ejecute nuevamente el código. Ya veremos, la columna C se rellenará con el formato de hora predeterminado.
Probemos con otro experimento.
Paso 9: En esto, cambiaremos el rango de celdas de salida de D1 a D5 donde veremos el Texto VBA. Y cambie el Arg2, en formato de Fecha que es DD-MMM-AAAA como se muestra a continuación.
Código:
Sub VBA_Text3 () Range ("D1: D5"). Value = Range ("D1: D5"). Worksheet.Evaluate ("INDEX (TEXT (A1: A5, " "DD-MMM-YYYY" "), )" ) Fin Sub
Paso 10: Ejecute nuevamente el código. Esta vez veremos, la fecha se verá en la columna D. Y esas fechas están en el formato que o DD-MMM-AAAA.
Así es como podemos cambiar los números en cualquier formato estándar que queramos.
Pros y contras de la función de texto Excel VBA
- Esto es fácil de implementar.
- Podemos cambiar los números en cualquier formato que queramos ver.
- No podemos convertir ningún texto al formato de número requerido.
Cosas para recordar
- El texto VBA convierte solo números en números. Pero el formato de los números será el formato estándar como Fecha, Hora, la combinación de Fecha y Hora o cualquier secuencia de dígitos.
- Si está aplicando y cambiando los números a un formato de ceros anteriores, coloque el apóstrofe antes de los ceros. De modo que los números se convertirán en texto y aparecerán los ceros.
- Si intentamos convertir cualquier texto con Texto VBA, entonces dará la salida solo como Texto.
- Para obtener el resultado exacto, debemos conocer la combinación de números que proporcionarán la hora y fecha exactas que queremos ver.
- Una vez hecho esto, guarde siempre el código completo en formato Macro-Enabled, para que el código no se pierda.
Artículos recomendados
Esta es una guía para la función de texto VBA. Aquí discutimos cómo usar la función de texto en Excel VBA junto con ejemplos prácticos y plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:
- Función de copiar y pegar en VBA
- Función de subcadena de Excel
- VBA Subíndice fuera de rango
- Fórmula ISNUMBER de Excel