web-dev-qa-db-fra.com

Sous-chaîne dans VBA

J'ai plusieurs chaînes dans différentes cellules comme

CO20:  20 YR CONVENTIONAL
FH30:  30 YR FHLMC
FHA31   

J'ai besoin d'obtenir la sous-chaîne de 1 à l'index de till de ':' ou si cela n'est pas disponible jusqu'à la fin (dans le cas de la chaîne 3). J'ai besoin d'aide pour écrire ceci en VBA.

20
S..

Plus court:

   Split(stringval,":")(0)
29
Tim Williams

Testez d'abord ':', puis prenez la chaîne de test jusqu'à ':' ou finissez, selon qu'elle a été trouvée

Dim strResult As String

' Position of :
intPos = InStr(1, strTest, ":")
If intPos > 0 Then
    ' : found, so take up to :
    strResult = Left(strTest, intPos - 1)
Else
    ' : not found, so take whole string
    strResult = strTest
End If
11
Steve Mallory

Vous pouvez d'abord trouver la position de la chaîne dans ce cas ":"

'position = InStr(StringToSearch, StringToFind)
position = InStr(StringToSearch, ":")

Ensuite, utilisez Left (StringToCut, NumberOfCharacterToCut)

Result = Left(StringToSearch, position -1)
5
Pepe