如何使用函数或正则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做到这一点…
-
打开一个Excel工作簿并粘贴你提供的文本:
-
让这些行被选中。
-
按“ALT + F11”打开Visual Basic编辑器。
-
转到插入菜单并打开一个模块。
-
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
-
点击绿色的播放button来执行VBA脚本。
-
回到表格并看到结果(不再有数字):
我面临着类似的问题,但是换个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