使用excel vba删除空白处的文本
我正在编写一个宏,它将删除excel列表。我需要一张名单,删除名字,这样“约翰·史密斯”就变成了“史密斯”。我知道如何删除空格后但空格前的文本,这似乎比较棘手。使用使用excel vba删除空白处的文本,excel,vba,Excel,Vba,我正在编写一个宏,它将删除excel列表。我需要一张名单,删除名字,这样“约翰·史密斯”就变成了“史密斯”。我知道如何删除空格后但空格前的文本,这似乎比较棘手。使用右(“John Smith”,LEN(“John Smith”)-FIND(“,”John Smith”)这里有一个子程序,它循环遍历命名区域中的所有单元格,名为“rng_Names”,并删除除最后一个单词以外的所有单词 Sub removeAllButLastWord() For Each cl In Range("rng_
右(“John Smith”,LEN(“John Smith”)-FIND(“,”John Smith”)
这里有一个子程序,它循环遍历命名区域中的所有单元格,名为“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 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
欢迎来到StackOverflow一个简单的文本栏对你有帮助吗?(你的标签VBS应该是VBA)工作正常,但我有一些小问题,在结尾有Jr的人,比如“小约翰·史密斯”。如何为类似的事情添加转义原因?我应该注意,运行宏往往会清除excel历史记录。因此,如果出现问题,通常无法撤消。确保测试您创建的任何vba是否存在潜在的错误/弱点,并保留excel工作簿的备份,以防最坏的情况发生。如果你不小心,你会丢失很多数据。。。除了第一个字,你什么都想要吗?我已经更新了我的答案,用一个修改过的sub来做。谢谢!和@Chronicide我了解风险,但我需要编辑1500多条记录的列表,所以宏是最节省时间的,我只需要小心。