所以说我有一个包含以下文字的单元格:
The man "BOB" leaves his "home".
我如何制作它以便细胞只是说
The man leaves his home
我知道有很多方法可以做到这一点,但它们似乎都不容易。我可以创建一个do循环,逐个字符地检查每个单元格,并删除那样的引号。
我还可以创建一个文本到列宏,所以它看起来像这样:
The man
Bob
leaves his
Home
但我的问题是如何找出我需要删除的文本。我意识到,当提取单词时,我的例子毫无意义。我猜这里有一个我忘记的公式或其他东西?
答案 0 :(得分:1)
我不确定这是否可以做到"轻松"使用excel的内置功能。但是,您可以通过使用VBA代码实现此目的。在模块中,您可以编写如下函数:
Public Function ReplaceInQuotes(ByVal str)
Set regex = CreateObject("vbscript.regexp")
regex.Global = True
regex.IgnoreCase = True
regex.Pattern = """.+?"""
Dim result
result = regex.Replace(str, "")
regex.Pattern = "\s+"
result = regex.Replace(result, " ")
ReplaceInQuotes = result
End Function
要调用上面的函数,你可以编写一个像这样的小子:
Public Sub main()
Cells(1, "B").Value = ReplaceInQuotes(Cells(1, "A").Value)
End Sub
所以,让我们说如果你的单元格A1中有你的字符串,那么在执行main
子程序后你就会得到你的结果。函数ReplaceInQuotes与正则表达式一起使用,因此您可能需要稍微操作它来处理一些" double"可能出现的空格。