使用excel vba删除空格左侧的文本

时间:2012-06-07 14:16:07

标签: excel vba

我正在编写一个可以清理excel列表的宏。我需要取一个名单并删除名字,所以“John Smith”变成了“Smith”。我知道如何在空格之后但在空格看起来更棘手之前删除文本。

2 个答案:

答案 0 :(得分:1)

使用RIGHT("John Smith",LEN("John Smith")-FIND(" ","John Smith"))

答案 1 :(得分:0)

这是一个子循环遍历命名区域中名为“rng_Names”的所有单元格,并删除除最后一个单词之外的所有单元格。

Sub removeAllButLastWord()
    For Each cl In Range("rng_Names")
        cl.Value = Right(cl.Value, Len(cl.Value) - InStrRev(cl.Value, " "))
    Next cl
End Sub

<强>更新

以下sub只删除第一个单词:

Sub removeFirstWord()
    For Each cl In Range("rng_Names")
        cl.Value = Right(cl.Value, Len(cl.Value) - InStr(cl.Value, " "))
    Next cl
End Sub

更新第二次

以下子句仅删除第一个单词,以及字符串“jr”(如果存在)

Sub removeFirstWordAndJR()
    For Each cl In Range("rng_Names")
        cl.Value = Replace(Right(cl.Value, Len(cl.Value) - InStr(cl.Value, " ")), " Jr", "", 1, -1, vbTextCompare)
    Next cl
End Sub