Удаление всего до последовательности символов

У Стивена есть рабочий лист с большим количеством текста. В ячейках в столбце A он хочет удалить все, что может произойти перед заданной последовательностью символов, например, все, что было до = XX =. В каждой ячейке может быть несколько экземпляров этих символов, но Стивен хочет удалить все до первого появления.

Один из способов сделать это – использовать формулу. Например, следующая формула вычислит все, что находится в ячейке A1, и просто вернет все до символов = XX =. Если символы не найдены в ячейке, возвращается вся ячейка:

 = RIGHT (A1, IF (ISERROR (FIND ("= XX =", A1,1)), LEN  (A1), LEN (A1) -FIND ("= XX =", A1,1) +1)) 

Если вместо этого вы хотите, чтобы не возвращалось первое вхождение = XX = все, что вам нужно сделать, это изменить +1 в конце формулы на -3.

Если вы предпочитаете решение на основе макросов, вы можете использовать процедуру, подобную следующей. Он проверяет все выбранные в данный момент ячейки, а затем удаляет все, что находится перед последовательностью = XX =.

 Sub DeleteToSequence () Dim rCell As Range Dim sSeq As String Dim x As Long sSeq = "= XX  = "Для каждой выбранной rCell x = InStr (rCell.Value, sSeq) Если x> 0, то rCell.Value = Mid (rCell, x) End If Next Set rCell = NothingEnd Sub 

Вы следует знать, что этот макрос может вызывать некоторые ошибки, особенно когда то, что вы ищете, начинается со знака равенства (например, = XX =). Когда строка, начинающаяся со знака равенства, вставляется обратно в ячейку, вы получите #NAME? ошибка, потому что Excel пытается проанализировать ячейку, как если бы она содержала формулу.

Если вы хотите удалить все до последовательности символов, используйте эту строку в середине процедуры:

 rCell.Value = Mid (rCell, x + Len (sSeq)) 

Оцените статью
Frestage.ru
Добавить комментарий