Texto de VBA

El texto es una función de hoja de trabajo en Excel, pero también se puede usar en VBA mientras se usa la propiedad range con él, la función para esta función es similar a la función de hoja de trabajo y toma la misma cantidad de argumentos que son los valores que deben ser convertido y un formato numérico especificado.

Función de texto de Excel VBA

TEXT es la función disponible con la hoja de trabajo, pero desafortunadamente, no es una función incorporada en Excel VBA. Para acceder a esta función, necesitamos usar el objeto de clase de función de la hoja de trabajo en VBA. La función de texto en Excel convierte un valor a un formato numérico específico.

Uno de los problemas con esta función son los argumentos. Siempre que usamos la clase de función de la hoja de trabajo de VBA, no podemos ver la sintaxis clara como en nuestra hoja de trabajo. Solo dice "Arg1" y "Arg2".

  • Arg1 es el valor al que debemos aplicar el formato.
  • Arg2 es el formato que debemos aplicar y debemos especificar el código de formato.

Ejemplos de la función de texto VBA en Excel

A continuación se muestran los ejemplos de la función de texto de Excel VBA.

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

Ejemplo 1

Déjame mostrarte un ejemplo simple de TEXTO en VBA Excel. Mire el siguiente código en Visual Basic.

Código:

 Sub Text_Example1 () Dim FormattingValue As String Dim FormattingResult As String FormattingValue = 0.564 FormattingResult = WorksheetFunction.Text (FormattingValue, "hh: mm: ss AM / PM") MsgBox FormattingResult End Sub 

En primer lugar, he declarado dos variables como una cadena en VBA

 Formato de atenuación Valor como cadena Formato de atenuación Resultado como cadena 

Para la primera variable, he asignado el número de formato que necesitamos formatear.

FormattingValue = 0.564

Ahora, para otra variable, he asignado la función TEXTO.

FormattingResult = WorksheetFunction.Text (FormattingValue, "hh: mm: ss AM / PM")

Si observa que he aplicado el formato de hora, es decir, "hh: mm: ss AM / PM"

Luego, finalmente, apliqué un cuadro de mensaje VBA para mostrar el resultado.

MsgBox FormattingResult

Cuando ejecuto el código, la función TEXT aplicará el formato de hora al número 0.564 y mostrará el resultado como se muestra a continuación.

Entonces, obtuvimos la hora como " 01:32:10 PM ".

Ejemplo # 2

Al igual que en el ejemplo del formato de fecha, hemos realizado algunos cambios menores en este ejemplo. A continuación se muestra el código.

Código:

 Sub Text_Example2 () Dim FormattingValue As String Dim FormattingResult As String FormattingValue = 43585 FormattingResult = WorksheetFunction.Text (FormattingValue, "DD-MMM-YYYY") MsgBox FormattingResult End Sub 

Desde el código anterior, cambié el valor de formato de 0.565 a 43585 y cambié el estilo de formato a "DD-MMM-YYYY".

Esto aplicará el formato al número 43585 como fecha y el resultado es el siguiente.

Aplicar formato a celdas

Hemos visto ejemplos simples, ahora mire cómo trabajar con celdas en una hoja de trabajo. Para este ejemplo, mire los datos a continuación.

Para todos estos números debemos aplicar el formato de hora. Para esto, el siguiente código aplicará el formato.

Código:

 Sub Text_Example3 () Dim k As Integer For k = 1 To 10 Cells (k, 2) .Value = WorksheetFunction.Text (Cells (k, 1) .Value, "hh: mm: ss AM / PM") Siguiente k Fin Sub 

Este código recorrerá 10 celdas y aplicará el formato que se muestra a continuación.

De esta manera, al usar la función VBA TEXT podemos aplicar formato de número a las celdas.