Зміст
Впровадження Макрос VBA це найефективніший, швидкий і безпечний спосіб виконання будь-якої операції в Excel. У цій статті ми покажемо вам, як відформатувати дату в Excel за допомогою VBA .
Завантажити Робочий зошит
Ви можете завантажити безкоштовну практичну книгу Excel тут.
Форматувати дату за допомогою VBA.xlsm
4 Способи форматування дати в Excel за допомогою VBA
Подивіться на наступний приклад. Ми зберегли однакові дати в обох Колонка Б і C щоб коли ми відформатуємо дату в Колонка C Ви дізнаєтесь з Колонка B в якому форматі була дата раніше.
1. VBA для форматування дати з одного типу в інший в Excel
Для початку давайте дізнаємося, як відформатувати дату з Комірка C5 в нашому наборі даних з VBA до " Вівторок - січень-2022 ".
Сходинки:
- Преса Alt + F11 на клавіатурі або перейдіть на вкладку Розробник - Visual Basic відкрити Редактор Visual Basic .
- У вікні коду, що з'явилося, в рядку меню, що з'явилося, натисніть Вставка -> Модуль .
- Скопіюйте наступний код та вставте його у вікно коду.
Sub DateFormat() Range("C5").NumberFormat = "dddd-mmmm-yyyy" 'Це відформатує дату до "вівторок-січень-2022" End Sub
Ваш код тепер готовий до запуску.
- Преса F5 на клавіатурі або в рядку меню виберіть Виконати -> Run Sub/UserForm Ви також можете просто натиснути на кнопку маленька іконка відтворення в рядку підменю для запуску макросу.
Цей код буде форматувати дату " 11-01-22 "до" Вівторок - січень-2022 ".
Ви також можете конвертувати цей формат дати в багато інших форматів. Просто дотримуйтесь наведеного нижче коду, щоб перетворити дату в потрібний вам формат.
Sub FormatDate() 'Оригінальна дата "11-01-22" Range("C5").NumberFormat = "дд-мм-гггг" 'Це відформатує дату до "11-01-2022" Range("C6").NumberFormat = "дд-мм-гггг" 'Це відформатує дату до "Вівторок-11-2022" Range("C7").NumberFormat = "дд-мм-ггггг" 'Це відформатує дату до "Вівторок-11-2022" Range("C8").NumberFormat = "дд-ммм-ггггг""11-Jan-2022" Range("C9").NumberFormat = "дд-мм-гггг" 'Це відформатує дату до "11 січня 2022 року" Range("C10").NumberFormat = "дд-мм-гггг" 'Це відформатує дату до "11-01-22" Range("C11").NumberFormat = "дд-мм-ггггг" 'Це відформатує дату до "вівторок січня 2022 року" Range("C12").NumberFormat = "дддд мммгггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггггг" 'Це відформатує дату до "Tuesday січня 2022" End Sub
Огляд
Читати далі: Функції Тепер і Формат в Excel VBA
2. Вбудовуємо VBA для перетворення дати за допомогою функції FORMAT
Excel має власний порядковий номер щодо окремих дат. Якщо ви хочете дізнатися порядковий номер будь-якої
конкретну дату, необхідно подати заявку функція DATEVALUE .
Припустимо, ви хочете дізнатися порядковий номер дати " 11 січня 2022 року ", то формулу потрібно записати як,
=DATEVALUE("11 січня 2022 року")
Excel видасть вам серійний номер 44572 цієї дати.
Зараз ми переведемо це число у відповідний формат дати.
Сходинки:
- Як і раніше, відкрито Редактор Visual Basic від Розробник вкладка та Вставка a Модуль у вікні коду.
- У вікні коду скопіюйте наступний код та вставте його.
Sub Format_Date() Dim iDate As Variant iDate = 44572 'Порядковий номер дати Excel "11 січня 2022 року" MsgBox Format(iDate, "ДД-МММ-гггг") End Sub
Ваш код тепер готовий до запуску.
Ви отримаєте дату " 11 січня 2022 року " у вікні повідомлення.
Докладніше: Як використовувати функцію ДатаЗначення VBA в Excel
Схожі читання
- Як вставити поточну дату в Excel (3 способи)
- Змінна дати в кодах VBA (7 варіантів використання макросів з прикладами)
- Отримання поточної дати у VBA (3 способи)
- Як використовувати ярлик дати в Excel
3. VBA для перетворення дати на основі певної частини в Excel
Припустимо, ви хочете відформатувати певну частину дати, наприклад, тільки день/місяць/рік, тоді запишіть код як,
Sub Date_Format() Range("C5").NumberFormat = "mmmm" 'Це відформатує дату в "січень" End Sub
Ваш код тепер готовий до запуску.
В рамках проекту " мммм " у цьому коді означає довгу форму назви місяця.
Оскільки дата " 11 січня 2022 року " тому цей фрагмент коду поверне " січень ".
Ви можете впровадити цей код для форматування та вилучення будь-якої конкретної частини, яку ви хочете з дати.
Sub FormatDateValue() 'Оригінальна дата "11-01-22" Range("C5").NumberFormat = "dd" 'Це відформатує дату до "11" Range("C6").NumberFormat = "ddd" 'Це відформатує дату до "Tue" Range("C7").NumberFormat = "dddd" 'Це відформатує дату до "Tuesday" Range("C8").NumberFormat = "m" 'Це відформатує дату до "1" Range("C9").NumberFormat = "mm" 'Це будевідформатувати дату до "01" Range("C10").NumberFormat = "mmm" 'Відформатувати дату до "Jan" Range("C11").NumberFormat = "yy" 'Відформатувати дату до "22" Range("C12").NumberFormat = "yyyy" 'Відформатувати дату до "2022" Range("C13").NumberFormat = "dd-mm" 'Відформатувати дату до "11-01" Range("C14").NumberFormat = "mm-yyy" 'Відформатувати дату довідформатувати дату до "01-2022" Range("C15").NumberFormat = "мм-гг" 'Відформатувати дату до "січень-2022" Range("C16").NumberFormat = "дд-гг" 'Відформатувати дату до "11-22" Range("C17").NumberFormat = "дд-гг" 'Відформатувати дату до "вівторок-2022" Range("C18").NumberFormat = "дд-гг" 'Відформатувати дату до "вівторок-2022" Range("C19").NumberFormat = "дд-дд"'Це відформатує дату до "11 січня" Range("C20").NumberFormat = "дддд-мммм" 'Це відформатує дату до "вівторок-січень" End Sub
Огляд
4. Вставка VBA для форматування дати на певному аркуші в Excel
Якщо потрібно відформатувати дату на основі конкретного аркуша, то спочатку потрібно задати в коді ім'я аркуша, потім відформатувати дату відповідно до необхідного типу.
- Відкрито Редактор Visual Basic від Розробник вкладка та Вставка a Модуль у вікні коду.
- У вікні коду скопіюйте наступний код та вставте його.
Sub Format_Date() Dim iSheet As Worksheet Set iSheet = ThisWorkbook.Sheets("Example") 'Встановити аркуш з іменем "Example" iSheet.Range("C5").NumberFormat = "dddd, mmmmdd, yyyy" End Sub
Ваш код тепер готовий до запуску.
Подивіться на 3-й рядок коду, де спочатку ми встановлюємо значення " Приклад ", а потім відформатуйте дату цього конкретного аркуша Excel.
Висновок
У цій статті було показано, як відформатувати дату в Excel за допомогою VBA Сподіваюся, ця стаття була для вас дуже корисною. Не соромтеся запитувати, якщо у вас виникнуть запитання щодо цієї теми.