如何使用函数或正则expression式从单元格中删除所有数字?

我有这样的单元格,每行一个:

达菲,约翰:“遗产:文明和犹太人”粉丝&歌唱,交响舞蹈+pipe弦乐组曲。 伯恩斯坦,“在城市”舞蹈情节。 Royal Phil./R.Williams

利莲,伊格纳斯1897-1963:歌曲,1920-1935。 Anja van Wijk,mezzo&Frans van Ruth,钢琴

欣德米特,Trauermusik。 Purcell,“童话女王”套房 罗西尼,弦乐奏鸣曲6.彼得罗夫,“创造世界”芭蕾舞团。 巴托克,罗马尼亚民谣Sz 56. Tartini,G长笛协奏曲wAMaiorov Leningrad Orch.for Ancient&Modern Music / Serov

比齐,威尔第,马斯内,普契尼:卡里,里戈莱托,维特,曼侬莱斯科特,托斯卡,图兰朵的歌曲Arias + Lara,Di Capua等人的歌曲 Peter Dvorsky,男高音W.Bratislava Orch./Lenard同时表演'Carmen'Overt'&'Thais'冥想。 Rec.Live,八十七分之一十

Fantini,Rauch,C.Straus,Priuli,Bertali:1648年维也纳皇家宫廷音乐节约克郡巴赫合唱团和巴洛克独奏者+伦敦巴洛克风格的黄铜/西摩

Vinci,Leonardo1690-1730:来自Semiramide Riconosciuta的Arias,Didone Abbandonata,La Caduta dei Decemviri,Lo Cecato Fauzo,La Festa de Bacco,Utica的Catone。 玛丽亚·彼得斯·索普。 wMCarraro指挥

格鲁克,莫扎特,贝多芬,韦伯,威尔第,瓦格纳,蓬基耶利,马斯卡尼,普契尼:阿里亚斯从阿尔塞斯特,唐乔瓦尼,菲德里奥,奥伯龙,巴洛,特里斯坦,沃克,齐格弗里德,Gotterdammerung,乔孔达,卡瓦莱里亚,托斯卡。 Helene Wildbrunn。 Rec.1919-24

我想删除所有号码。 我怎么用一个公式来做到这一点? 或者可能只是search和replace正则expression式?

如何使用VBA做到这一点…

  1. 打开一个Excel工作簿并粘贴你提供的文本: 替代文字

  2. 让这些行被选中。

  3. 按“ALT + F11”打开Visual Basic编辑器。

  4. 转到插入菜单并打开一个模块。

  5. input此function:

    Sub clear() s = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9") For Each r In Selection v = r.Value For i = 0 To 9 v = Replace(v, s(i), "") Next r.Value = v Next End Sub 

  6. 点击绿色的播放button来执行VBA脚本。 替代文字

  7. 回到表格并看到结果(不再有数字): 替代文字

我面临着类似的问题,但是换个angular度想避免使用vba。 替代品的recursion使用对我来说是个窍门,如下所示:

原始数据(A1:An,n =整数)ROE -1.00 P / E 0.07 -0.85 ROC-ROE 0.02 -0.03等。

= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, “1”, “”), “0”, “”), “2”, “”), “3” , “”), “4”, “”), “5”, “”), “6”, “”), “7”, “”), “8”, “”), “9”,” “)

可以扩展去除“ – ”和小数点“”。 以及“+”(如果相关),最后是多余的空格

=修剪(替代(替代(substitue(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, “1”, “”), “0”, “”), “2” , “”), “3”, “”), “4”, “”), “5”, “”), “6”, “”), “7”, “”), “8”,” “),”9“,”“),” – “,”“),”+“,”“),”。“,”“))

小写字母表示在当前步骤中添加的并发症。

通过改变要parsing的整个数组的范围引用(A1:An)并将公式input为数组(即使用Ctl + Enter而不是Enter来完成任务),自然映射到整个数组上。

然后我使用len(B1)来检查结果是我想要的。

不是很优雅,诚然。 但可能是一个有用的练习,教导学生思考和编码“即时”。

更新:我不小心发布了包含function,而不是replace!

search和正则expression式replace工作正常,但你可能想编辑你的文字后缀(如逗号之前的数字等)。

这是function。 模式简单= RegexReplace(cell,“\ d”,“”)

 Function RegexReplace(ByVal text As String, _ ByVal replace_what As String, _ ByVal replace_with As String) As String Dim RE As Object Set RE = CreateObject("vbscript.regexp") RE.Pattern = replace_what RE.Global = True RegexReplace = RE.Replace(text, replace_with) End Function