0

我正在编写一个宏,它将清除一个 excel 列表。我需要列出一个名字并删除第一个名字,所以“John Smith”变成了“Smith”。我知道如何在空格之后删除文本,但在空格之前似乎更棘手。

4

2 回答 2

1

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

于 2012-06-07T14:21:28.617 回答
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

更新第二个

以下 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
于 2012-06-07T14:25:12.667 回答