VBA
Manipulation de chaîne fréquemment utilisée
Recherche…
Introduction
Exemples rapides de fonctions de chaîne MID LEFT et RIGHT en utilisant INSTR FIND et LEN.
Comment trouvez-vous le texte entre deux termes de recherche (Say: après deux points et avant une virgule)? Comment obtenez-vous le reste d'un mot (en utilisant MID ou en utilisant RIGHT)? Laquelle de ces fonctions utilise des paramètres basés sur zéro et des codes de retour vs One-based? Que se passe-t-il quand les choses tournent mal? Comment traitent-ils les chaînes vides, les résultats non fondés et les nombres négatifs?
Manipulation de chaînes exemples fréquemment utilisés
Better MID () et d'autres exemples d'extraction de chaînes, actuellement absents du Web. S'il vous plaît, aidez-moi à faire un bon exemple ou complétez celui-ci ici. Quelque chose comme ça:
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) '...
N'hésitez pas à modifier cet exemple et à l'améliorer. Tant que cela reste clair et comporte des pratiques d'utilisation courantes.