Использование поиска и замены для ожидаемых символов

Мел часто хочет поставить символ в начало всего, что находится в диапазоне ячеек. Например, он может захотеть добавить букву в начало некоторого текста (так, что «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» Для каждой rcell в выборе, если LCase (Mid (rcell.Value, 1, ToFindLength)) = LCase (ToFind) Тогда rcell.Value = ToPrepend & rcell.Value End If NextEnd 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» ‘Обрабатывать только текстовые и числовые константы Set rng = Selection.SpecialCells (xlCellTypeConstants, 3) Для каждого c In rng c.Value = ToPrepend & c.Value Next cEnd Sub

Этот макрос принимает подмножество любых ячеек, которые вы выбрали перед его запуском (только те ячейки, которые содержат текстовые и числовые значения) и затем добавляет содержимое переменной ToPrepend в начало ячейки. Если вы хотите изменить то, что добавлено заранее, просто измените значение переменной. (Следует отметить, что если вы измените ToPrepend на апостроф, тогда ячейки, к которым добавлен апостроф, будут вести себя точно так же, как если бы вы ввели апостроф, за которым следует значение ячейки.)

Источник: frestage.ru

Бытовой вопрос