Извлечь текст из длинной строки текста - PullRequest
0 голосов
/ 04 февраля 2019

Мне нужно извлечь следующую часть 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 & ")),"""")"

Thisэто то, что я вижу сейчас: MECH ^ CHU Мне нужно увидеть это: CDA-CUP-PF Мне нужно использовать что-то вроде кода VBA выше.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Эта формула будет делать то, что вы хотите: =TRIM(MID(SUBSTITUTE(A1,"~",REPT(" ",255)),255,255))

Она работает, заменяя ~ на 255 пробелов, а затем выделяет 255 символов из 255 символов (что гарантирует, что мы получаем то, что вы хотите)затем он обрезает свободные места.

Если вы хотите, чтобы другие части, использовали левую или правую, а не среднюю.

UDF - намного лучший вариант, хотя, особенно если вы делаете это изкод уже.

0 голосов
/ 05 февраля 2019

Предполагая, что ваш шаблон изолирует текст между ~ решение формулы:

=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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...