J'ai un problème avec la valeur de copie entre les mêmes caractères. Exemple ci-dessous.
Disons que nous avons du texte comme celui-ci: p> est une option pour obtenir la valeur "1123444" de cette chaîne? P> Je veux copier des valeurs après 4 caractères survenant comme "|". P> dans un autre mot: p> Valeur de la copie entre 2e "|" et 3ème "|". p> La longueur de la chaîne n'est pas la même. P> Je serai vraiment reconnaissant pour tous les conseils et votre aide. P> p>
4 Réponses :
Debug.Print Split(Application.Trim(Replace(<your_string>, "|", " ")), " ")(2)
Et si la chaîne est comme ça? "Asd ||| qweeee || 1123444 | 45555512345 | SWDQ |" Il y a des valeurs vierges entre "|". Macro ignorant des valeurs vides, je ne veux pas. Des conseils?
Dim s As String, items s = "asd|qweeee|1123444|45555512345|swdq|" items = Split(s, "|") MsgBox items(2)
Ça marche pour moi. Parfait! C'est ce que je cherchais. Merci beaucoup! :)
Et si la chaîne est comme ça? "Asd ||| qweeee || 1123444 | 45555512345 | SWDQ |" Il y a des valeurs vierges entre "|". Macro ignorant des valeurs vides, je ne veux pas. Des conseils?
@Grezegorz: Si vous ne pouvez pas définir une règle capable d'être comprise par des personnes humaines et votre chaîne ne ressemblera pas à la même chose, seul Dieu peut le faire, pas Excel VBA ... Pour votre dernier numéro, essayez ceci: Dim X sous forme de chaîne code> x = "asd ||| qweeee || 1123444 | 45555512345 | SWDQ |" code> débogage.Print (Remplacer (x), "|||", "|"), "||", "|"), "|") (2) code>. Je ne sais pas si vous pouvez comprendre le code d'ici. Je vais essayer une réponse ...
Pour votre dernière demande, utilisez le code suivant: mais, si votre chaîne contenant "| | | Provient d'une fonction qui n'a pas pu trouver des éléments et des espaces introduits "" séparés par "|", il est préférable de savoir où de cette chaîne est extraite et l'utiliser comme il est, sans la formule de saucisse. Juste le diviser par "|" et renvoyez le nombre approprié d'élément de tableau en fonction de votre enquête sur l'origine de la chaîne. p> p>
Il apparaît comme si vous ne voulez pas inclure des segments vides lors de la détermination duquel retourner.
qui étant le cas, vous pouvez également utiliser une expression régulière également: P>
Function extrSegment(S As String, Optional Segment As Long = 4, Optional Delimiter As String = "|") As String
extrSegment = Split(S, Delimiter)(Segment-1) 'array will be 0-based
End Function
Qu'entendez-vous par «Ignorer || code>? Qu'en est-il de ||| code>? Qu'attendriez-vous pour la sortie de la ligne 3 ci-dessus?
Par exemple, nous avons du texte comme celui-ci: "Ed1 | 22222 | 123123123 | FFFF | DDDD" et "ED1 | 22222 || FFFF | DDDD" et je veux me donner "FFFF" des deux conseils? J'utilise la formule de votre feuille de travail, c'est mieux pour moi.
@Grzegorz Voir mon édition
J'ai vérifié et j'ai maintenant l'air vraiment génial. Merci Ron! J'apprécie beaucoup :)