Как часто вам приходилось выполнять повторяющиеся действия? К примеру, изменять значения ячеек, применять формулы или добавлять определенный текст к каждой ячейке в столбце. Вручную это занимает много времени и может быть утомительным.
Сегодня рассмотрим, как использовать цикл For Each для выполнения различных действий с ячейками.
Вы узнаете, как легко и эффективно применять операции к множеству ячеек одновременно, что значительно ускорит вашу работу с данными и сэкономит время.
📢 Файл с исходным кодом размещен в конце статьи 🔽
▶️ Деление на число
Конечная цель этого макроса - разделить значения выбранных ячеек на заданное пользователем число:
📝 Краткое описание кода
1. Запрашиваем у пользователя число, на которое нужно разделить значения ячеек:
2. Проверяем введенное значение на наличие десятичного разделителя точки. Если точка обнаружена, выводится сообщение об ошибке:
3. Проверяем, является ли введенное значение числовым.
- Если не является, выводится сообщение об ошибке:
- Если введенное значение числовое, оно преобразуется в тип Double.
4. Далее происходит проверка деления на ноль.
- Если введенное число не равно нулю, происходит следующее: Значения ячеек копируются в формулы для сохранения исходных значений.
Значения ячеек делятся на введенное число и записываются обратно в ячейки. - Если введенное число равно нулю, выводится сообщение об ошибке.
▶️ Другие арифметические операции
🔔 Аналогично можно выполнить и другие действия заменив сроку cell.Value = cell.Value / divideBy соответственно:
умножение: cell.Value = cell.Value * divideBy
сложение : cell.Value= cell.Value + divideBy
вычитание: cell.Value = cell.Value / divideBy
возведение в степень: cell.Value = cell.Value ^ divideBy
▶️ Добавление текстового значения
Данный макрос будет выполнять действия с текстом (например, если требуется к ячейке содержащей числовые значения добавить единицу измерения "шт.")
При запуске макроса будет запрошен текст, который нужно добавить к значениям выбранных ячеек, и затем этот текст будет добавлен к каждому значению ячейки
⚙️ Изменения, внесенные в макрос:
- Переменная на textToConcatenate типа String, которая будет использоваться для хранения текста, который будет добавлен к значениям ячеек.
- Вместо деления значения ячейки на число, теперь мы используем оператор сцепления строк &, чтобы добавить введенный текст к значению ячейки.
- Добавлено условие If Len(textToConcatenate) > 0 для проверки, что введенный текст не является пустым.
- В сообщении об ошибке изменено сообщение на "Введен пустой текст. Пожалуйста, повторите попытку":
▶️ Как использовать
Напомним, чтобы эффективно использовать добавленные вами макросы вы можете:
- добавить значок макроса на панель быстрого доступа 🔽
- настроить ленту 🔽
Подводя итог...
Цикл For Each позволяет перебирать каждый элемент внутри определенного набора данных, включая ячейки в таблице, и применять к ним определенные операции или изменения.
Узнать больше: