01 Что делает макрос
При импорте данных из других источников, в ячейках могут оказаться значения числа, отформатированные как текст. Вы не сможете отформатировать число в этих ячейках в числовые, валютные или процентные форматы. Вы также можете увидеть смарт-тег на ячейке с предупреждением о том, что ячейка отформатирована как текст.
Это достаточно легко исправить вручную, нажав на кнопку Текст по столбцам на вкладке Данные. Нет необходимости проходить через все шаги в этом мастере: просто нажмите на кнопку Готово, чтобы применить исправление.
Проблема заключается в том, что Excel не позволяет выполнять преобразования текста в нескольких столбцах. Вы должны повторить эти действия для каждого столбца. Этот макрос может помочь вам.
В этом макросе, мы используем две переменные объекта Range, чтобы пройти через наш целевой диапазон. Оператор For Each активирует каждую ячейку в целевом диапазоне.
Каждый раз, когда активируется ячейка, мы просто сбрасываем значение ячейки. Это фактически то же самое, что и преобразования команды «Текст по столбцам».
02 Код макроса
Sub
PreobrazovatTekstVChislo()
'Шаг 1: Объявляем переменные
Dim
MyRange
As
Range
Dim
MyCell
As
Range
'Шаг 2: Сохраните книгу прежде, чем изменить ячейки?
Select
Case
MsgBox(
"Перед изменением ячеек. "
& _
"Сохранить книгу?"
, vbYesNoCancel)
Case
Is
= vbYes
ThisWorkbook.Save
Case
Is
= vbCancel
Exit
Sub
End
Select
'Шаг 3:Определяем целевой диапазон
Set
MyRange = Selection
'Шаг 4: запускаем цикл по диапазону
For
Each
MyCell
In
MyRange
'Шаг 5: Возврат в исходное значение ячейки
If
Not
IsEmpty(MyCell)
Then
MyCell.Value = MyCell.Value
End
If
'Шаг 6: Получаем следующую ячейку в диапазоне
Next
MyCell
End
Sub
03 Как работает макрос
1. Шаг 1 объявляет две переменные объекта Range.
2. При выполнении макрос уничтожает стек отката. Это означает, что вы не сможете отменить изменения, поэтому нужно сохранить книгу перед запуском макроса. Это делает Шаг 2.
3. Шаг 3 заполняет переменную MyRange с целевым диапазоном.
4. Шаг 4 проводит цикл через каждую ячейку в целевом диапазоне, активизируя каждую ячейку, через которую мы проходим.
5. После того, как ячейка активируется, макрос использует функцию IsEmpty, чтобы убедиться, что ячейка не пуста. Мы делаем это, чтобы немного сэкономить на производительности, пропуская пустые ячейки. Затем мы просто преобразуем значение ячейки и устраняем любое несоответствие форматирования.
6. Шаг 6 повторяет цикл, чтобы получить следующую ячейку. После просмотра всех ячеек в целевом диапазоне макрос заканчивается.
04 Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
1. Активируйте редактор Visual Basic, нажав ALT + F11.
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
3. Выберите Insert➜Module.
4. Введите или вставьте код во вновь созданном модуле.
05 Скачать файл
Автор проекта
Дмитрий Якушев
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель - помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Подписывайтесь на нас в соц.сетях:
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь