web-dev-qa-db-ja.com

VBAのサブストリング

のような異なるセルに複数の文字列があります

CO20:  20 YR CONVENTIONAL
FH30:  30 YR FHLMC
FHA31   

サブストリングを1から ':'のインデックスまで取得するか、それが終了まで使用できない場合(ストリング3の場合)取得する必要があります。 VBAでこれを書くのに助けが必要です。

20
S..

短い:

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

最初に「:」をテストしてから、見つかったかどうかに応じて、テスト文字列を「:」または最後まで取得します

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

この場合「:」の文字列の位置を最初に見つけることができます

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

次に、Left(StringToCut、NumberOfCharacterToCut)を使用します

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