Функція CDate Excel VBA

Ви чули про функцію чи команду, за допомогою яких ми можемо перетворити що завгодно на дату та час? Так, поряд із функцією Date у нас є функція CDate у VBA, яка це робить. CDate - це функція excel, але це можна зробити і в VBA. CDate перетворює все, крім стандартного формату дати. Це може використовуватися для перетворення часу, а також дати.

Синтаксис CDate - це найпростіший синтаксис, який ми коли-небудь бачили. CDate розглядає лише вираз, такий як дата та час у будь-якому форматі, як вхідне. Нижче наведено його синтаксис.

Нам просто потрібно ввести будь-яке число, дату або час у будь-якому форматі, який ми маємо, і CDate автоматично перетворить їх у стандартний формат дати та часу.

Як використовувати функцію CDate Excel VBA?

Ми дізнаємось, як використовувати функцію VBA CDate з кількома прикладами в Excel.

Ви можете завантажити цей шаблон VBA CDate Excel тут - Шаблон VBA CDate Excel

VBA CDate - приклад №1

Спершу візьмемо простий приклад. У цьому прикладі ми спробуємо перетворити один простий тип дати у стандартний формат, який фактично вбудований у excel за замовчуванням.

Для використання функції CDate в VBA виконайте наведені нижче дії.

Крок 1: Відкрийте модуль, який доступний на вкладці меню Вставка, як показано нижче.

Крок 2: Тепер запишіть підпроцедуру VBA CDate в будь-яке ім'я, як показано нижче. Але рекомендується в основному писати назву підпроцедури в назві виконуваних робіт.

Код:

 Sub VBA_CDate () Кінець Sub 

Крок 3: Тепер оголосимо змінну, скажімо, що це Input1 як String . Розглядаючи тип даних як String, оскільки ми будемо цитувати вхід у поєднанні чисел та алфавітів.

Код:

 Sub VBA_CDate () Dim Input1 As String End Sub 

Крок 4: Тепер ми оголосимо ще одну змінну, за якою ми побачимо вихід. І ця змінна буде використана для перегляду дат.

Код:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date End Sub 

Крок 5: Тепер виберіть будь-яку дату, яка поєднується з числами та алфавітами, і цитуйте їх у перевернутих комах, як показано нижче.

Код:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = "1 вересня 2019" Кінець Sub 

Крок 6: Для перетворення дати введення в стандартний формат ми будемо використовувати функцію CDate, як показано нижче, зі змінною FormatDate, яка була оголошена вище. І використовувати значення, збережене в змінній Input1.

Код:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = "1 вересня 2019" FormatDate = CDate (Input1) Кінець Sub 

Крок 7: І щоб побачити вихід, ми використаємо Msgbox, щоб призначити його за допомогою функції FormatDate Date.

Код:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = "1 вересня 2019" FormatDate = CDate (Input1) MsgBox FormatDate End Sub 

Крок 8: Тепер запустіть код, натиснувши клавішу F5 або натиснувши кнопку Play. Ми отримаємо дату, яку ми обрали як 1 вересня 2019 року, тепер її перетворять у стандартний формат дати, як 9/1/2019, як показано нижче.

Ми можемо спробувати різні численні комбінації дат, які дійсно існують, і побачити, який стандартний вихід ми отримуємо.

VBA CDate - приклад №2

У цьому прикладі ми побачимо різні типи дати та часу, які існують, і який вихід ми отримаємо під час використання VBA CDate. Для цього виконайте наступні кроки:

Крок 1: Запишіть підпроцедуру VBA CDate, як показано нижче.

Код:

 Sub VBA_CDate2 () Кінець Sub 

Крок 2: Тепер ми оголосимо 3-4 різні змінні типу даних Дата. Давайте оголосимо першу змінну як Date1 та надамо їй тип даних як Date, як показано нижче.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date End Sub 

Крок 3: Тепер призначіть будь-яке число, яке ми хочемо перетворити у формат дати. Ми вибрали випадкове число як 12345.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" End Sub 

Крок 4: Аналогічним чином визначте іншу змінну Date2 як тип дати Дата, як показано нижче.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date End Sub 

Крок 5: Тепер знову в змінній Date2, подумайте про те, щоб дати дату в будь-якому форматі. Тут ми зберегли 12/3/45 в якості нашої дати.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" End Sub 

Крок 6: Далі ми знову оголосимо ще одну змінну Date3 як Date.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date End Sub 

Крок 7: Тут ми призначимо значення будь-якого часу, як показано нижче, як 12:10 у форматі 24 години.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" End Sub 

Крок 8: Тепер нарешті ми оголосимо іншу змінну Date4 як Date.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date End Sub 

Крок 9: І тут ми дамо десяткове значення, як 0.123, або ви можете вибрати будь-яке значення за потребою.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" End Sub 

Тепер є 2 способи побачити вихід значень, що зберігаються в різних змінних, оголошених вище. MsgBox дозволить нам бачити всі значення одночасно, але за допомогою Debug.print дозволить нам побачити всі змінні, що виводяться за один раз.

Крок 10: Отже, тут краще, якщо ми виберемо Debug.Print, як показано нижче. І в цьому ж рядку призначте всю змінну, починаючи з дати 1 до дати 4.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" Debug Дата друку1, Дата2, Дата3, Дата4 Кінець Підряд 

Крок 11: І щоб побачити вихід, ми скористаємося негайним вікном, як показано нижче. Для доступу до цього перейдіть на вкладку меню Вид і виберіть Негайне вікно, як показано нижче.

Крок 12: Тепер запустіть код, натиснувши клавішу F5 або натиснувши кнопку Play. Ми побачимо, тип даних дати дав нам вихід, але це не у стандартному форматі даних.

Крок 13: Щоб вивести стандартні дані, ми також використовуватимемо CDate і тут. Отже, ми призначимо CDate для кожної дати та часу, які ми використовували для різних змінних, як показано нижче.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 As Date Date4 = CDate ("0.123") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Крок 14: Тепер запустіть код, натиснувши клавішу F5 або натиснувши кнопку Play.

Ми побачимо, що вихідні дані і Date, і CDate однакові, але є основна спільна різниця між ними. А це означає, що CDate може конвертувати будь-який тип номерів у стандартний формат дати.

Крок 15: Спробуємо будь-який текст або алфавіт з CDate і подивимося, що ми отримаємо. Отже, ми ввели якийсь випадковий текст як abc у змінну Date4 .

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 As Date Date4 = CDate ("abc") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Крок 16: Тепер запустіть код ще раз. Ми отримаємо вікно з повідомленням про помилку як Невідповідність типу . Це тому, що CDate не може читати та перетворювати текст у стандартний формат дати та часу.

Плюси і мінуси функції CDate Excel VBA

  • Це може перетворити будь-яку дату або час у стандартний формат, якщо потрібно.
  • VBA CDate інтерпретує будь-яке число як значення дати та пізніше перетворює його у стандартний формат.
  • Він не може інтерпретувати та перетворювати текст у формат дати.

Що потрібно пам’ятати

  • CDate може вважати числа лише вхідними, але це число може бути в будь-якому форматі.
  • Текстове значення неможливо перетворити.
  • Якщо ми подаємо час або дату, яка вже є у стандартному форматі, вона знову поверне те саме значення, що й вихід.
  • Функція дати та CDate працюють однаково. Тоді як за допомогою CDate ми можемо конвертувати і час, і дату.

Рекомендовані статті

Це посібник з функції VBA CDate. Тут ми обговорюємо, як використовувати функцію CDate в Excel за допомогою коду VBA разом з практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. Формат дати VBA
  2. Функція DATEDIF Excel
  3. VBA DateSerial
  4. Функція DATEDIF Excel

Категорія: