VBA中的子串

S..*_*S.. 20 string excel vba split

我在不同的单元格中有多个字符串

CO20:  20 YR CONVENTIONAL
FH30:  30 YR FHLMC
FHA31   
Run Code Online (Sandbox Code Playgroud)

我需要从1到到'''的索引获取子字符串,或者如果在结束之前不可用(在字符串3的情况下).我需要帮助在VBA中写这个.

Tim*_*ams 29

短:

   Split(stringval,":")(0)
Run Code Online (Sandbox Code Playgroud)

  • 太好了!S ..,你可能想要添加一个Rtrim()来处理尾随空格(例如"FH30:"),但这很好. (3认同)

Ste*_*ory 11

首先测试':',然后将测试字符串调到':'或结束,具体取决于是否找到它

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
Run Code Online (Sandbox Code Playgroud)


Pep*_*epe 5

在这种情况下,你可以先找到字符串的位置":"

'position = InStr(StringToSearch, StringToFind)
position = InStr(StringToSearch, ":")
Run Code Online (Sandbox Code Playgroud)

然后使用Left(StringToCut,NumberOfCharacterToCut)

Result = Left(StringToSearch, position -1)
Run Code Online (Sandbox Code Playgroud)