VBA中的子串

时间:2011-05-18 23:51:44

标签: string excel vba split

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

CO20:  20 YR CONVENTIONAL
FH30:  30 YR FHLMC
FHA31   

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

3 个答案:

答案 0 :(得分:28)

更短的:

   Split(stringval,":")(0)

答案 1 :(得分: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

答案 2 :(得分:5)

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

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

然后使用Left(StringToCut,NumberOfCharacterToCut)

Result = Left(StringToSearch, position -1)