una texto para mid macro longitud instr funcion extraer espaƱol celda caracteres cadena buscar string vba built-in startswith

texto - string vba



VBA: prueba si la cadena comienza con una cadena? (2)

En VBA, ¿cuál es la forma más directa de probar si una cadena comienza con una subcadena? Java tiene startsWith . ¿Hay un equivalente de VBA?


A juzgar por la declaración y descripción de la función startsWith Java , la "manera más directa" de implementarlo en VBA sería con Left :

Public Function startsWith(str As String, prefix As String) As Boolean startsWith = Left(str, Len(prefix)) = prefix End Function

O, si desea tener el parámetro de compensación disponible, con Mid :

Public Function startsWith(str As String, prefix As String, Optional toffset As Integer = 0) As Boolean startsWith = Mid(str, toffset + 1, Len(prefix)) = prefix End Function


Hay varias formas de hacer esto:

InStr

Puede usar la función incorporada InStr para probar si una Cadena contiene una subcadena. InStr devolverá el índice de la primera coincidencia, o 0. Entonces puede probar si una Cadena comienza con una subcadena al hacer lo siguiente:

If InStr(1, "Hello World", "Hello W") = 1 Then MsgBox "Yep, this string begins with Hello W!" End If

Si InStr devuelve 1 , entonces la cadena ("Hola mundo"), comienza con la subcadena ("Hola W").

Me gusta

También puede usar el operador de comparación like junto con una coincidencia básica de patrones:

If "Hello World" Like "Hello W*" Then MsgBox "Yep, this string begins with Hello W!" End If

En esto, usamos un asterisco (*) para probar si la cadena comienza con nuestra subcadena.