提取2个字符之间的字符串;不同的格式

时间:2018-06-22 20:23:47

标签: excel vba

我有多个单元格,其中一些带有空格[12345],有些没有[12345];我已经在其中编码了空格,但是我需要添加一行以提取没有空格的文本。是否可以在同一脚本中执行

Sub ExtractText()

Range ("X3").Select
ActiveCell.ForumulaR1C1 
    "=MID(RC[-23],FIND(""[ "",RC[-23])+2,FIND('' ]"",RC[-23])-FIND(''['',RC[-23])-2)"
Range ("X4").Select

End Sub

2 个答案:

答案 0 :(得分:1)

使用:

=TRIM(MID(A1,2,LEN(A1)-2))

enter image description here

这将删除所有空格(如果有)

EDIT#1

如果括号前后有材料,请使用:

=TRIM(MID(A1,FIND("[",A1)+1,FIND("]",A1,FIND("[",A1)+1)-(FIND("[",A1)+1)))

enter image description here

答案 1 :(得分:0)

另一种可能性:

=TRIM(REPLACE(REPLACE(A1,SEARCH("]",A1),LEN(A1),""),1,SEARCH("[",A1),""))

同时,坚持使用VBA,您可以使用Replace()对象的Range方法并同时对许多单元进行操作:

Sub ExtractText()

    With Range("X3:X8") ' reference wanted target range
        .Value2 = Range("A3:A8").Value2 ' have reference range values as corresponding column A range ones
        .Replace what:="*[", replacement:="", lookat:=xlPart 'get rid of text left of opening bracket (included)
        .Replace what:="]*", replacement:="", lookat:=xlPart 'get rid of text right of closing bracket (included)
        .Replace what:=" ", replacement:="", lookat:=xlPart ' trim
    End With

End Sub