Excel VBA CDate функция

Чували ли сте за функцията или командата, чрез която можем да преобразуваме всичко в дата и час? Да, заедно с функцията Date имаме функция CDate във VBA, която го прави. CDate е функцията на excel, но това може да се направи и във VBA. CDate конвертира всичко друго, но в стандартен формат Дата. Това може да се използва както за преобразуване на времето, така и за Дата.

Синтаксисът на CDate е най-лесният синтаксис, който някога сме виждали. CDate счита само израз като дата и час във всеки формат като вход. По-долу е синтаксисът на него.

Просто трябва да подадем произволно число, дата или час във всеки формат, който имаме и CDate автоматично ще го преобразува в стандартен формат Дата и час.

Как да използвате Excel VBA CDate функция?

Ще научим как да използваме 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 като String End Sub 

Стъпка 4: Сега ще декларираме друга променлива, чрез която ще видим изхода. И тази променлива ще бъде използвана за да видите датите.

Код:

 Sub VBA_CDate () Dim Input1 като стринг Dim FormatDate като дата край Sub 

Стъпка 5: Сега изберете всяка дата, която е в комбинация от числа и азбуки, и цитирайте тази в обърнати запетаи, както е показано по-долу.

Код:

 Sub VBA_CDate () Dim Input1 като стринг Dim FormatDate като дата въвеждане1 = "1 септември 2019" край Sub 

Стъпка 6: За да преобразуваме датата на въвеждане в стандартен формат, ще използваме функцията CDate, както е показано по-долу, с променливата FormatDate, която беше декларирана по-горе. И използвайте стойността, съхранена в променливата Input1.

Код:

 Sub VBA_CDate () Dim Input1 като String Dim FormatDate като дата Input1 = "1 септември 2019" FormatDate = CDate (Input1) Край Sub 

Стъпка 7: И за да видим изхода, ще използваме Msgbox, за да го присвоим с функция FormatDate на Date.

Код:

 Sub VBA_CDate () Dim Input1 като String Dim FormatDate като дата 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 различни променливи на Data type Date. Нека декларираме първата променлива като Date1 и й дадем типа данни като Дата, както е показано по-долу.

Код:

 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 като Дата.

Код:

 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 като Дата.

Код:

 Под 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 или можете да изберете всяка стойност според изискванията.

Код:

 Под 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 

Сега има два начина да видите изхода на стойностите, съхранени в различни променливи, декларирани по-горе. 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 Край Sub 

Стъпка 11: И за да видим изхода, ще използваме незабавен прозорец, както е показано по-долу. За да получите достъп до това, отидете на раздела Меню View и изберете Незабавен прозорец, както е показано по-долу.

Стъпка 12: Сега стартирайте кода, като натиснете клавиша F5 или кликнете върху бутона за пускане. Ще видим, типът данни за дата ни даде резултата, но не е в стандартен формат на данните.

Стъпка 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 или кликнете върху бутона за възпроизвеждане.

Ще видим, че изходните данни и на 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 не може да чете и конвертира текст в стандартен формат за дата и час.

Плюсовете и минусите на Excel VBA CDate функция

  • Това може да преобразува всяка дата или час в стандартен формат според изискванията.
  • VBA CDate интерпретира всяко число като стойност на датата и по-късно го преобразува в стандартен формат.
  • Не може да интерпретира и преобразува текста във формат на дата.

Неща, които трябва да запомните

  • CDate може да счита само числата за вход, но този номер може да бъде във всеки формат.
  • Текстовата стойност не може да бъде преобразувана.
  • Ако подадем време или дата, които вече са в стандартния формат, тя отново ще върне същата стойност като продукцията.
  • Функцията за дата и CDate работи по същия начин. Докато чрез CDate можем да конвертираме както време, така и дата.

Препоръчителни статии

Това е ръководство за VBA CDate функция. Тук обсъждаме как да използвате CDate функция в Excel, използвайки VBA Code, заедно с практически примери и изтеглящ се шаблон на excel. Можете да разгледате и другите ни предложени статии -

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

Категория: