我已在单元格 A1 中粘贴了如下所示的文本:
“Vanguard - 总市场 - 综合”或“Vanguard - 总市场 - 混合”
我想剪掉“-Composite”或“-Commingled”并将其余部分返回到单元格 B1 中。目前我在 B1 中使用这个公式:
=LEFT(A1,FIND("- 复合",A1)-1)
但是,我不知道如何查找多个术语(即复合或混合)。有没有一个公式可以实现这一点?如果没有,我怎样才能在VBA中做到这一点?
感谢您的帮助!
最佳答案
如果我理解正确的话,您只是想删除第二次出现 -
之后的所有内容。 ,即返回第一个 -
左侧的修剪后的(删除了多余的空格)文本。特点。适应this solution要找到字符串中的最后一个单词,就是这样:
=TRIM(SUBSTITUTE(LEFT(A1,LEN(A1)-LEN(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,LEN(A1)))),"-","",2))
无论 -
周围有空格,此公式都适用。 ,并且无论以下内容如何:
如果均匀间距很重要,您可以用 SUBSTITUTE
将其包裹起来功能:
=SUBSTITUTE(SUBSTITUTE(TRIM(SUBSTITUTE(LEFT(A1,LEN(A1)-LEN(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,LEN(A1)))),"-","",2)),"-"," - ")," "," ")
现在您可以为所有情况提供干净且格式相同的输出:
关于vba - 查找并删除 Excel 单元格内的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39644497/