.Text
String
とString
LastIndexOf
性質を持っていませんが返されます。実際には、オブジェクトではないためプロパティがありません。だから、あなたは "必要なオブジェクト"を取得します。 InStrRev
はあなたに最後を与えながら、何が欲しいのは
InStrRev(someString, " ")
InStr
機能を使用すると、検索文字列の最初の出現の指標を与えています。これはあなたの当面の問題を解決するだろう:あなたは、おそらく最後のスペース文字の一部の権利をしたいので、あなたは、文字列の右の部分の長さが必要になりますが、InStrRev
はあなたの長さを与えるしかし
Dim cellCont As String
'...
cellCont = Sheets("Sheet1").Cells(i, 1).Value2 'use value or value2, not text
first = Right(cellCont, InStrRev(cellCont, " "))
左の部分。だから、全長から空間の位置を引く必要があります。あなたが事前に単語の数を知っていたならば、これは
first = Split(cellCont, " ")(2)
のように非常にきれいに見える
first = Split(cellCont, " ")(UBound(Split(cellCont, " ")))
:
first = Right(cellCont, Len(cellCont) - InStrRev(cellCont, " "))
別のオプションは、配列を返すSplit
機能だろう
編集:W 0 .Text
の代わりにValue
(またはValue2
)を使用する必要があります。.Text
実際に表示されるテキストを返します。したがって、列には大きすぎる数値がセルに含まれていると、たとえば####
が返されます。
"i"が0より大きく、アクティブブック(必ずしもマクロが含まれているブックではない)に "Sheet1"という名前のシートがあることを確認してください。 – barrowc