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

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

link: / excelribbon-Using_Find_and_Replace_to_Pre-Pend_Characters [Использование поиска и замены для ожидаемых символов].