Всем привет! 👋
Продолжаем тему предыдущего урока. Сегодня рассмотрим функцию: Weekday.
📢 Файл с исходным кодом размещен в конце статьи 🔽
▶️ Функция Weekday
- возвращает числовое значение, представляющее день недели для указанной даты.
Нумерация дней недели может быть различной, в зависимости от настроек вашей системы.
Например, в США первым днем недели будет воскресенье, а в Европе понедельник.
По умолчанию, в VBA используется нумерация, где воскресенье - первый день недели (1), а суббота - последний день недели (7).
▶️ Пример использования функции Weekday
📝 Результат:
Чтобы использовать дату указанную в ячейке (например, в ячейке A1) несколько изменим макрос:
В данном коде добавлена проверка наличия даты в ячейке A1.
- Если ячейка содержит дату, то она присваивается переменной myDate и выполняется вычисление дня недели:
- Если ячейка не содержит дату, выводится сообщение об ошибке:
▶️ Преобразования даты в название дня недели
Ранее мы рассматривали, что для преобразования даты в название дня недели используется функция Format:
Аналогичное решение можно получить используя функцию Choose:
В данном коде функции Choose передаем номер дня недели (от 1 до 7) и указываем соответствующие названия дней.
📝 После выполнения макроса, будет отображено название дня недели для указанной даты в ячейке A1:
🔘 Чтобы применить рассматриваемую функцию к диапазону применим цикл For Each
В данном примере добавлена возможность выделить диапазон ячеек, содержащих даты, например:
Затем проходим по каждой ячейке в выделенном диапазоне и проверяем, является ли значение ячейки датой. Если в ячейке дата, то выполняем замену значения ячейки на соответствующий день недели.
📝 В результате выполнения макроса все даты в выделенном диапазоне будут заменены на дни недели:
🔘 Чтобы отображать значения дня недели рядом с соответствующими ячейками несколько изменим код:
📝 Теперь значения дня недели будут отображаться рядом с соответствующими ячейками: