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.