Мел часто хочет поставить символ в начало чего-либо, что находится в диапазоне ячеек. Например, он может захотеть добавить букву в начало некоторого текста (так, что «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 [Использование поиска и замены для символов предварительного ожидания].