Ричард хотел бы иметь возможность искать апостроф (‘) в крайнем левом положении в ячейке, но Excel не позволяет ему это делать. Другими словами, если ячейка содержит ‘123 или’ a34tp, Ричард хотел бы иметь возможность найти этот начальный апостроф и, при желании, заменить его чем-нибудь другим.

Делать то, что хочет Ричард, требует небольшого предварительного объяснения.

Технически неправильно называть апостроф «ведущим символом» или упоминать, что он находится в «крайнем левом положении» ячейки. Даже если вы можете взглянуть на панель формул и увидеть апостроф в начале формулы, этот апостроф на самом деле не является частью содержимого ячейки; поэтому вы не можете использовать «Найти и заменить», чтобы найти и заменить его.

Апостроф фактически считается «префиксным символом» для ячейки.

Возможные значения символа префикса устанавливаются с помощью параметра «Клавиши перехода перехода» в Excel, и значение параметра сохраняется для каждой книги отдельно. Вы можете изменить этот параметр, используя вкладку «Переход» диалогового окна «Параметры».

Если параметр очищен (условие по умолчанию для параметра), тогда значение символа префикса для каждой ячейки может быть пустым или апострофом. Если ячейка содержит текст, то установка символа префикса особого значения не имеет. Если содержимое ячейки не является текстом, то установка символа префикса на апостроф заставляет Excel рассматривать содержимое ячейки как текст. Так, например, число 123 рассматривается как текст, а не как число, и отображается в строке формул как «123».

Если выбран параметр «Переходные клавиши навигации» (в поле для флажка стоит галочка), то значение символа префикса для каждой ячейки может иметь одно из пяти различных значений. Эти значения согласуются с префиксами, используемыми в Lotus 1-2-3, и, как ни странно, поддерживаются в Excel только в качестве переходной помощи к регулярному использованию в программе.

Возможные значения: апостроф (выравнивание по левому краю), кавычка (с выравниванием по правому краю), каратах (по центру), обратная косая черта (повторяется) или пробел (нетекстовый элемент).

Теперь вернемся к первоначальному вопросу Ричарда: как найти и избавиться от этого ведущего апострофа. Вы не можете использовать «Найти и заменить» для редактирования, потому что апостроф на самом деле не является частью содержимого ячейки.

Итак, вы должны внести изменения в макрос. Изменить сравнительно легко. Во-первых, вам нужно убедиться, что для книги снят параметр «Ключи перехода при переходе». Зачем? Потому что вы, вероятно, не захотите испортить символ префикса для ячеек, если книга может снова использоваться в будущем с Lotus 1-2-3. Убедитесь, что настройка верна в вашем макросе с помощью следующей строки:

Application.TransitionNavigKeys = False

Затем вы можете пройти по выбранным ячейкам и проверить, является ли символ префикса для каждой ячейки апострофом. Если это так, то все, что вам нужно сделать, это сделать так, чтобы макрос выполнял эквивалент ручного повторного ввода содержимого ячейки следующим образом:

For Each c In Selection     If c.PrefixCharacter = "'" Then         c.Value = c.Value     End If Next c

Обратите внимание, что макрос проверяет, что находится в свойстве PrefixCharacter. Это свойство можно прочитать в VBA, но его нельзя изменить напрямую. Вот почему макрос должен использовать, казалось бы, простую строку, чтобы присвоить значение каждой ячейки обратно в ячейку — по сути, перепечатывая содержимое.

Если вы предпочитаете не использовать макрос, чтобы избавиться от символов префикса апострофа, то вы можете воспользоваться небольшой странной особенностью Paste Special. Выполните следующие общие шаги:

  1. Выделите пустую ячейку и скопируйте ее в буфер обмена (используйте Ctrl + C).

  2. Выберите диапазон ячеек, из которого вы хотите удалить символ префикса.

  3. Откройте диалоговое окно Специальная вставка.

  4. Щелкните переключатель Добавить.

  5. Щелкните ОК.

После «добавления» пустой ячейки к каждой из целевых ячеек символ префикса — если он есть — удаляется.

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

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

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

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

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

link: / excelribbon-Searching_for_Leading_Apostrophes [Поиск ведущих апострофов].