.Text
는 LastIndexOf
재산이없는 String
및 String
를 반환합니다. 사실 객체가 아니기 때문에 속성이 없습니다. 그것이 당신이 "필요한 객체"를 얻는 이유입니다. 당신이 원하는 것은 InStrRev
당신에게 마지막을 제공하면서 InStr
기능은 당신에게 검색 문자열의 첫 번째 항목의 인덱스를 제공
InStrRev(someString, " ")
입니다. 그래서이 즉각적인 문제를 해결할 것입니다 : 당신은 아마 마지막 공백 문자의 일부 권리를 원하는, 그래서 당신은 문자열의 오른쪽 부분의 길이를해야하지만 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, " ")(UBound(Split(cellCont, " ")))
사전이
first = Split(cellCont, " ")(2)
같은 훨씬 예뻐 보일 것이다
first = Right(cellCont, Len(cellCont) - InStrRev(cellCont, " "))
는 또 다른 옵션은 배열을 반환 Split
기능이 될 것입니다
편집 : W 당신은 .Text
대신 Value
(또는 Value2
)을 사용해야합니다 : .Text
실제로 표시되는 텍스트를 반환합니다. 따라서 셀에 열에 비해 너무 큰 숫자가 있으면 예를 들어 ####
을 반환합니다.
"i"가 0보다 크고 현재 통합 문서에 "Sheet1"이라는 시트가 있는지 확인하십시오 (매크로가있는 통합 문서 일 필요 없음) – barrowc