Як відформатувати дату за допомогою VBA в Excel (4 способи)

  • Поділитися Цим
Hugh West

Впровадження Макрос 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 Сподіваюся, ця стаття була для вас дуже корисною. Не соромтеся запитувати, якщо у вас виникнуть запитання щодо цієї теми.

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.