VBA
Manipulación de cuerdas de uso frecuente.
Buscar..
Introducción
Ejemplos rápidos para las funciones de cadena MID LEFT y RIGHT utilizando INSTR FIND y LEN.
¿Cómo encuentra el texto entre dos términos de búsqueda (por ejemplo, después de dos puntos y antes de una coma)? ¿Cómo se obtiene el resto de una palabra (usando MID o usando DERECHA)? ¿Cuál de estas funciones utiliza parámetros basados en cero y códigos de retorno frente a uno basado? ¿Qué pasa cuando las cosas van mal? ¿Cómo manejan las cadenas vacías, los resultados no encontrados y los números negativos?
Manipulación de cuerdas de uso frecuente.
Mejor MID () y otros ejemplos de extracción de cadenas, que actualmente faltan en la web. Por favor, ayúdame a dar un buen ejemplo, o completa este aquí. Algo como esto:
DIM strEmpty as String, strNull as String, theText as String
DIM idx as Integer
DIM letterCount as Integer
DIM result as String
strNull = NOTHING
strEmpty = ""
theText = "1234, 78910"
' -----------------
' Extract the word after the comma ", " and before "910" result: "78" ***
' -----------------
' Get index (place) of comma using INSTR
idx = ... ' some explanation here
if idx < ... ' check if no comma found in text
' or get index of comma using FIND
idx = ... ' some explanation here... Note: The difference is...
if idx < ... ' check if no comma found in text
result = MID(theText, ..., LEN(...
' Retrieve remaining word after the comma
result = MID(theText, idx+1, LEN(theText) - idx+1)
' Get word until the comma using LEFT
result = LEFT(theText, idx - 1)
' Get remaining text after the comma-and-space using RIGHT
result = ...
' What happens when things go wrong
result = MID(strNothing, 1, 2) ' this causes ...
result = MID(strEmpty, 1, 2) ' which causes...
result = MID(theText, 30, 2) ' and now...
result = MID(theText, 2, 999) ' no worries...
result = MID(theText, 0, 2)
result = MID(theText, 2, 0)
result = MID(theText -1, 2)
result = MID(theText 2, -1)
idx = INSTR(strNothing, "123")
idx = INSTR(theText, strNothing)
idx = INSTR(theText, strEmpty)
i = LEN(strEmpty)
i = LEN(strNothing) '...
Por favor, siéntase libre de editar este ejemplo y hacerlo mejor. Siempre que quede claro, y tenga en él prácticas de uso comunes.