从一长串文本中提取文本

时间:2019-02-04 20:56:32

标签: excel vba excel-formula

我需要从以下字符串中提取以下部分CDA-CUP-PF: MECH〜CDA-CUP-PF〜1-CUP0915.2XL-减铜剂(P) 文字

AddFormula TopLeft.Offset(1, 3).Resize(RowCount, 1), "=IFERROR(RIGHT(AA" & Row & ",FIND(""~"",AA" & Row & ")-1,FIND(""^"",AA" & Row & ")+1-FIND(""-"",AA" & Row & ")),"""")"

这是我现在看到的:MECH ^ CHU 我需要看一下:CDA-CUP-PF 我需要使用上面的VBA代码。

2 个答案:

答案 0 :(得分:1)

假设您的模式将~之间的文本隔离,公式解决方案是:

=MID(A1,FIND("~",A1)+2,FIND("~",A1,FIND("~",A1)+1)-FIND("~",A1)-3)

VBA - UDF解决方案看起来像这样

Public Function Isolate(x As Range)

    Dim xString: xString = Split(x, "~")
    Isolate = xString(1)

End Function

答案 1 :(得分:0)

此公式将满足您的要求:=TRIM(MID(SUBSTITUTE(A1,"~",REPT(" ",255)),255,255))

它的工作原理是将~替换为255个空格,然后从255个字符中切出255个字符(这保证我们得到了您想要的),然后修剪出多余的空格。

如果需要其他部分,请使用向左或向右而不是中间。

UDF是一个更好的选择,尤其是当您已经从代码中执行此操作时。