我想在:
(冒号)的最后一次出现时将单元格拆分为excel。例如,test:test1:test2
必须分为test2
,即:
的最后一次出现。
我该怎么做?
答案 0 :(得分:1)
假设您在最后:
之后的子字符串少于255个字符:
=TRIM(RIGHT(SUBSTITUTE(B2,":",REPT(" ",255)),255))
如果您在最后:
之后的子字符串长度超过255个字符:
=RIGHT(B2,LEN(B2)-MATCH(2,1/(MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1)=":")))
带数组条目的两个公式( CTRL + SHIFT + ENTER )
答案 1 :(得分:0)
如果我理解正确的话,你可以这样做,VBA WrdArray会保留所有单词,我们使用UBound来获取数组中的最后一个。
Public Sub Spl()
Dim WrdArray() As String
Dim text_string As String
text_string = Sheet1.Cells(2, 2)
WrdArray() = Split(text_string, ":")
x = WrdArray(UBound(WrdArray()))
Sheet1.Cells(2, 3) = x
End Sub
感谢simoco指出原来的功能没有用。
=RIGHT(B2; SEARCH(":";B2;1))
答案 2 :(得分:0)
您也可以编写自己的包装InstrRev
Public Function InstrReverse(cell As Range, char As String) As Integer
InstrReverse = InstrRev(cell.Value, char)
End Function
然后(假设您的目标字符串在A1中),这将为您提供左侧部分
=LEFT(A1,InstrReverse(A1,":")-1)
这将为您提供正确的部分
=RIGHT(A1,LEN(A1)-InstrReverse(A1,":"))