У Стивена есть рабочий лист с большим количеством текста. В ячейках в столбце 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="

For Each rCell In Selection         x = InStr(rCell.Value, sSeq)

If x > 0 Then             rCell.Value = Mid(rCell, x)

End If     Next

Set rCell = Nothing End Sub

Вы должны знать, что этот макрос может вызывать некоторые ошибки, особенно когда то, что вы ищете, начинается со знака равенства (например, = XX =).

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

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

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

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (7696) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Deleting_Everything_Up_to_a_Character_Sequence [Удаление всего, вплоть до последовательности символов].