从单元格中的文本中删除前导分号和尾随分号

假设在某个单元格中有一段文字看起来像

;ABCD;EFGH ;;ABCD;EFGH; 

如何仅从开始和结束删除分号。 结果应该是

 ABCD;EFGH 

我相信有更好的方法来做到这一点,但它的工作原理!

 Public Function SplitSemiColon(s As String) As String While Left(s, 1) = ";" s = Mid(s, 2) Wend While Right(s, 1) = ";" s = Left(s, Len(s) - 1) Wend SplitSemiColon = s End Function 

将代码放在一个新的模块中,并像这样使用工作表中的函数(例如):

 =SplitSemiColon(A1) 

如果没有空格,则可以将其转换为空格,修剪和转换:

 =Substitute(Trim(Substitute(A1,";"," "))," ",";") 

TRIM删除多余的空格,所以上面会变成;A;;;B;A;B ,但VBA Trim不:

 [A1] = Replace(Trim(Replace([A1],";"," "))," ",";") ' ";A;;;B;" into "A;;;B" 

如果有空格,可以用不同的字符replace,但是太乱了:

 =Substitute(Substitute(Trim(Substitute(Substitute(A1," ","_"),";"," "))," ",";"),"_"," ")