Dim pos AsInteger
pos = InStr("find the comma, in the string",",")
devolverá 15 en pos
Si no se encuentra, devolverá 0
Si necesita encontrar la coma con una fórmula de Excel, puede usar la =FIND(",";A1)función.
Tenga en cuenta que si desea usar Instrpara encontrar la posición de una cadena que no distingue entre mayúsculas y minúsculas, use el tercer parámetro de Instr y dele la constante vbTextCompare(o solo 1 para troqueles).
Dim posOf_A AsInteger
posOf_A = InStr(1,"find the comma, in the string","A", vbTextCompare)
le dará un valor de 14.
Tenga en cuenta que debe especificar la posición de inicio en este caso como se indica en la especificación que vinculé: el argumento de inicio es obligatorio si se especifica la comparación.
Sobre la base de la respuesta de Rene, también podría escribir una función que devolviera VERDADERO si la subcadena estaba presente o FALSO si no fuera así:
PublicFunction Contains(strBaseString AsString, strSearchTerm AsString)AsBoolean'Purpose: Returns TRUE if one string exists within anotherOnErrorGoTo ErrorMessage
Contains = InStr(strBaseString, strSearchTerm)ExitFunction
ErrorMessage:
MsgBox "The database has generated an error. Please contact the database administrator, quoting the following error message: '"& Err.Description &"'", vbCritical,"Database Error"EndEndFunction
¿Qué tipo de error de base de datos esperamos en esta función? La captura de error y el mensaje de error parecen ser completamente inútiles.
Roobie Nuby
11
@RoobieNuby Ese es solo mi manejo de errores predeterminado. Lo puse en todas mis funciones porque si algo sale mal, quiero que el personal me llame, no intente arreglarlo por sí mismo.
INSTR
Funciona para ti?Respuestas:
Use la función Instr
devolverá 15 en pos
Si no se encuentra, devolverá 0
Si necesita encontrar la coma con una fórmula de Excel, puede usar la
=FIND(",";A1)
función.Tenga en cuenta que si desea usar
Instr
para encontrar la posición de una cadena que no distingue entre mayúsculas y minúsculas, use el tercer parámetro de Instr y dele la constantevbTextCompare
(o solo 1 para troqueles).le dará un valor de 14.
Tenga en cuenta que debe especificar la posición de inicio en este caso como se indica en la especificación que vinculé: el argumento de inicio es obligatorio si se especifica la comparación.
fuente
También puedes usar la palabra especial
like
:fuente
También existe la función InStrRev que hace el mismo tipo de cosas, pero comienza a buscar desde el final del texto hasta el principio.
La respuesta de Per @ rene ...
... aún devolvería 15 a pos, pero si la cadena tiene más de una de la cadena de búsqueda, como la palabra "the", entonces:
... devolvería 20 a pos, en lugar de 6.
fuente
Sobre la base de la respuesta de Rene, también podría escribir una función que devolviera VERDADERO si la subcadena estaba presente o FALSO si no fuera así:
fuente