Использование функции «Найти и заменить» для ожидаемых символов (Microsoft Excel)
Мел часто хочет поставить символ в начало чего-либо, что находится в диапазоне ячеек. Например, он может захотеть добавить букву в начало некоторого текста (так, что «123» станет «A123», а «xyz» станет «Axyz»), или он может захотеть добавить апостроф (так «123» станет «» 123 «и» xyz «
становится» xyz «). Мэл задается вопросом, можно ли это сделать с помощью функции «Найти и заменить».
Короткий ответ: не может. Возможности «Найти и заменить» в Excel более ограничены, чем в Word, где у вас есть возможность искать подстановочные знаки и использовать текст «Найти» в том, что заменяется. (Это всего лишь два примера возможностей, отсутствующих в программе Excel «Найти и заменить».)
Таким образом, один из возможных ответов — скопировать данные в Word, использовать «Найти и заменить» для внесения изменений, а затем скопировать данные обратно. Конечно, вы рискуете потерять форматирование в цикле приема-передачи, потерять часть точности и преобразовать все результаты формулы в статические значения. Для многих пользователей это неприемлемые риски.
Другой вариант — использовать возможности Excel для объединения. Например, если значения, которые вы хотите предварительно отложить, находятся в столбце A (начиная с A1), вы должны использовать формулу, такую как столбец B:
="A" & A1
Результат добавляет букву A к тому, что находится в A1. Это работает для предварительного ожидания чего угодно, кроме апострофа. Попытка отложить апостроф заканчивается на «123 или» xyz, но апостроф виден в ячейке. В Excel результат отличается от ввода апострофа с последующим 123 или апострофа с последующим xyz. (В случае набора текста апостроф указывает на то, что содержимое ячейки следует рассматривать как текст, а апостроф отображается только на панели формул, а не в самой ячейке.)
Если вы действительно хотите изменить значения в серии ячеек (что подсказывает желание использовать «Найти и заменить»), то единственное, что вы можете сделать, — это использовать макрос для внесения изменений. Если вы хотите предварительно отложить ячейки, начинающиеся с установленного значения (например, 123) с буквой (например, A), тогда будет достаточно простого макроса.
Sub Prepend1() ToFind = "123" ToFindLength=Len(ToFind) ToPrepend = "A" For Each rcell In Selection If LCase(Mid(rcell.Value, 1, ToFindLength)) = LCase(ToFind) Then rcell.Value = ToPrepend & rcell.Value End If Next End Sub
Обратите внимание, что переменная ToFind содержит начальный текст, который вы хотите отложить в начале, а переменная ToPrepend содержит то, что вы хотите разместить перед этой строкой. В этом случае, когда вы выбираете диапазон ячеек и запускаете макрос, все, что начинается с 123 (например, «123» или «12345»
или «123D27X»), будет иметь букву A, добавленную в начало клетка.
Однако такой макрос не помогает, если вы хотите добавить букву в начало каждой ячейки в диапазоне, а не только тех, которые начинаются с 123.
В этом случае вам нужен другой подход.
Sub Prepend2() Dim rng As Range Dim c As Range Dim ToPrepend As String ToPrepend = "A" ' Process only text and number constants Set rng = Selection.SpecialCells(xlCellTypeConstants, 3) For Each c In rng c.Value = ToPrepend & c.Value Next c End Sub
Этот макрос берет подмножество любых ячеек, которые вы выбрали перед его запуском (только те ячейки, которые содержат текстовые и числовые значения), а затем добавляет содержимое переменной ToPrepend в начало ячейки. Если вы хотите изменить то, что добавлено заранее, просто измените значение переменной. (Следует отметить, что если вы измените ToPrepend на апостроф, тогда ячейки, к которым добавлен апостроф, будут вести себя точно так же, как если бы вы ввели апостроф, за которым следует значение ячейки.)
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (12239) применим к Microsoft Excel 2007 и 2010. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Using_Find_and_Replace_to_Pre-Pend_Characters [Использование поиска и замены для символов предварительного ожидания]
.