在Excel中拆分单元格

时间:2014-04-08 07:10:41

标签: excel excel-vba excel-2010 vba

我想在:(冒号)的最后一次出现时将单元格拆分为excel。例如,test:test1:test2必须分为test2,即:的最后一次出现。

我该怎么做?

3 个答案:

答案 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

的UDF
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,":"))