Дата на формата на VBA - Как да променя формата на датата в кода на VBA?

Дата на форматиране на Excel VBA

За да форматираме дата във VBA , използваме самата вградена функция FORMAT, тя приема въвеждане като формат на датата и връща желания формат, необходими за тази функция, са самият израз и типът на формата.

Форматирането на дата и час са чувствителни неща в Excel и същото се отнася и за VBA. Датата и часът по подразбиране се основават на системната дата, на която работим, която може да варира в зависимост от системата. В тази статия ще ви покажем различни техники за форматиране на дати с кодове на VBA.

За да променим формата на датата с VBA кодиране, трябва да сме наясно какви са форматите на датите и влиянието им върху датата.

Таблицата по-долу показва различното форматиране на датата и техните кодове.

Така че, ако имате предвид горната диаграма, форматирането на датата чрез VBA кодиране изобщо не е трудна задача.

Как да променя формата на датата във VBA?

По-долу са примерите за формат на дата на Excel VBA.

Пример # 1

Например имаме една и съща дата в множество клетки на работния лист, както е показано по-долу.

Сега ще приложим различни формати за дата за една и съща дата, за да видим въздействието при различни кодове на формати за дата.

Първо копирайте същите данни и в следващата колона, за да видите въздействието.

За първата дата, т.е. клетка А1, ще приложим формата „ДД-ММ-ГГГГ“ .

Първо в кода трябва да изберем клетката, като използваме обекта RANGE .

Код:

Sub Date_Format_Example1 () Диапазон ("A1") Край Sub

Тъй като променяме формата на датата на клетката, трябва да осъществим достъп до свойството „ Формат на числото“ на обекта RANGE.

Код:

Sub Date_Format_Example1 () Диапазон ("A1"). NumberFormat End Sub

След достъп до „ Формат на числа “, трябва да зададем числовия формат, като поставим знака за равенство и приложим кода на формата в двойни кавички.

Код:

Sub Date_Format_Example1 () Диапазон ("A1"). NumberFormat = "dd-mm-yyy" 'Това ще промени датата до "23-10-2019" Край на Sub

Когато изпълним този код, той ще приложи числовия формат към клетка A1 като „ DD-MM-YYY“.

Изход:

Пример # 2

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

Код:

Sub Date_Format_Example2 () Диапазон ("A1"). NumberFormat = "dd-mm-yyy" 'Това ще промени датата на "23-10-2019" Range ("A2"). NumberFormat = "ddd-mm-yyy" „Това ще промени датата на„ Сряда-10-2019 “Обхват („ A3 “). NumberFormat =" dddd-mm-yyy "'Това ще промени датата на„ Обхват сряда-10-2019 („A4“) .NumberFormat = "dd-mmm-yyy" 'Това ще промени датата на "23-Oct-2019" Обхват ("A5"). NumberFormat = "dd-mmmm-yyy"' Това ще промени датата на "23- Октомври-2019 "Обхват (" A6 "). NumberFormat =" dd-mm-yy "'Това ще промени датата на" 23-10-19 "Обхват (" A7 "). NumberFormat =" ddd mmm yyyy "' Това ще промени датата на „сряда октомври 2019“Обхват ("A8"). NumberFormat = "dddd mmmm yyyy" 'Това ще промени датата на "Сряда октомври 2019" Край Sub

Резултатът от този код ще бъде както следва.

Изход:

Променете формата на датата, като използвате функцията FORMAT

Във VBA имаме функция, наречена FORMAT, която може да се използва за прилагане на желания формат към клетката.

Просто трябва да посочим каква е стойността за „Expression“ и да приложим „Format“ съответно.

Погледнете кода по-долу за пример.

Код:

Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 MsgBox Format (MyVal, "DD-MM-YYYY") End Sub

В горния код определих променливата като вариант (който може да съдържа всяка стойност).

Код:

Затъмнете MyVal като вариант

След това за тази променлива съм присвоил стойността като 43586.

Код:

MyVal = 43586

Next, in the message box, I have shown the result of the variable, but before we show the result, we have used the “FORMAT” function to format the value of the variable “MyVal,” and the format is given. “DD-MM-YYYY.”

Code:

MsgBox Format(MyVal, "DD-MM-YYY")

Ok, let’s run the code and see the result in the message box in VBA.

Output:

As you can see above, the result shows as “01-05-2019”.

Now you must be wondering we have supplied the serial number but the result showing as the date. This is because Excel stores the date as serial numbers, so the value 43586 is equal to the date “01-05-2019,” and if you increase the number by 1 i.e., 43587, the date will be “02-05-2019”.

Code:

Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 MsgBox Format (MyVal, "DD-MM-YYY") End Sub

Неща за запомняне

  • Датата по подразбиране на вашата система ще бъде приложена и към вашия Excel.
  • Свойството Формат на числа може да се използва за промяна на формата на датата във VBA.
  • Използвайки функцията FORMAT, можем да променим формата на датата.
  • Excel съхранява датата като серийни номера и ако приложите формат на датата, тя ще се покаже съответно.

Интересни статии...