Получить Первый Символ Ячейки Excel Vba • Собираем код вместе

Меняем в Excel английские буквы на русские.Замена символов в VBA.

Замена английских символов в тексте на русский шрифт. Ставим задачу.

Давайте решим эту проблему, используя возможности VBA, или – проще – возможности макросов.

Написание основного кода.

Вначале попробуем определить, какие именно знаки латинского алфавита похожи на русский и запишем их в виде строки

Напоминаю, в первой строке все буквы латинские (английские, если вам так проще), а во второй – кириллица, то есть русские. Названия произвольны. Обратите внимание, что знаки, похожие по написанию, находятся на одинаковых местах. Логика тут следующая. Если один из знаков проверяемого текста совпадает с знаком из строки LatStr, то надо взять аналогичный знак из RusStr

Для этого назначим для проверяемой строки переменную TestString. К примеру, возьмем его из текущей ячейки

После этого начнем по очереди сравнивать каждый символ полученной строки с латиницей из LatStr.

Запускаем цикл для получения очередного знака из TestString.

Вначале объявим переменные хранения счетчиков циклов, а также очередных знаков из TestString и LatStr. Так же зададим переменную типа строка для результата обработки NewString

Теперь начнем так же в цикле сравнивать его со знаками из LatStr. Если такой знак отыщется, то меняем 7айденный символ соответствующий знак из RusStr.

Закрываем цикл сравнения и вернемся к проверке очередного знака.

В итоге, если буква была латинской, она заменится на соответствующую по написанию русскую, если нет – знак остается прежним. Добавим полученный результат к некоей строке NewString. Изначально наша переменная, как и любая другая, будет пустой, но после каждого прохождения цикла тестирования к ней будет добавляться очередной символ

Собираем код вместе.

Отступы могут быть произвольными, можно вообще обойтись без них, но так проще отследить, что же происходит на участках кода

Где же применить полученный код? Лично я вижу два варианта.

Создаем пользовательскую функцию – UDF.

Первый – обернуть строки кода в виде функции. Например, создать пустой файл Excel, открыть в нем редактор VBA, используя нажатие сочетания “Alt F11” и дать команду

замена символов в VBA -1

Редактор автоматически создаст основу или – как принято это называть – каркас для функции, добавив строку End Function. После этого добавим полученный нами выше код перед строкой End Function. Первую строку кода пропускаем – мы задаем TestString как параметр – исходные данные – для нашей функции. Завершим все добавлением строки

замена символов в VBA -2

Название функции естественно может быть произвольным.

Сохраним файл с функцией как надстройку Excel.

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

замена символов в VBA

Файл → параметры → Надстройки → надстройки Excel → перейти

замена символов в VBA -4

Меняем в Excel английские буквы на русские.Замена символов в VBA.

После этого функция станет доступной во всех файлах Excel для текущего пользователя в категории «Определенные пользователем»

Меняем в Excel английские буквы на русские.Замена символов в VBA.

Меняем в Excel английские буквы на русские.Замена символов в VBA.

Меняем в Excel английские буквы на русские.Замена символов в VBA.

Обратите внимание на формулы. Очевидно, что после применения функции LatinToRus были найдены все слова по образцам.

Используем создание процедуры.

Второй способ применения – использование созданного кода в виде процедуры, например, для ячеек выделения. Такую процедуру удобнее добавить в личную книгу макросов. Изначально доступ к ней запрещен, поэтому пойдем на хитрость. Запустим запись макроса с вкладки «Вид»

Меняем в Excel английские буквы на русские.Замена символов в VBA.

Укажем хранение макроса в личной книге, после чего сразу остановим запись

Меняем в Excel английские буквы на русские.Замена символов в VBA.

Меняем в Excel английские буквы на русские.Замена символов в VBA.

Снова запускаем редактор VBA и открываем текст модуля из личной книги.

Меняем в Excel английские буквы на русские.Замена символов в VBA.

Удаляем строки Sub Макрос1 () и End Sub а так же все что Excel добавил между ними и вставляем следующий код

Меняем в Excel английские буквы на русские.Замена символов в VBA.

Теперь достаточно выделить нужный диапазон, нажать сочетание Alt F8 и выбрать нашу процедуру.

Замена символов в VBA произойдет автоматически во всех выделенный ячейках. И наконец ,если вам надо наоборот поменять русские буквы в латинице, то просто поменяйте местами в циклах LatStr и RusStr то есть сделайте так

Подведем итоги.

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

VBA_Excel - Стр 6
где указанные в скобках величины ,, … задают размеры массива – количество индексов и максимально допустимое значение для каждого конкретного индекса. По умолчанию индексирование элементов массива начинается с нуля.
[expert_bq id=»1570″]Для ввода массива на рабочем листе установить поле ввода TextBox, для вывода результата список ListBox, для управления работой программы две командные кнопки рис. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] 2. Дана строка текста. Сформировать новую строку, вставив между встречающимися рядом символами «к» и «м» символ «у». Для ввода исходного текста и вывода результата на рабочем листе установить два поля ввода TextBox.
разделить текст на несколько ячеек.

Как заменить английские буквы на русские в Excel через VBA.

В приведенной выше формуле функция LEFT используется для извлечения первого символа из строки в ячейке. Затем он использует функцию UPPER, чтобы изменить регистр первой буквы на верхний. Затем он объединяет остальную часть строки (которая извлекается с помощью функции RIGHT).

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: