Как да форматирате дата с VBA в Excel (4 метода)

  • Споделя Това
Hugh West

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

Изтегляне на работна тетрадка

Можете да изтеглите безплатната учебна тетрадка на Excel от тук.

Форматиране на дата с VBA.xlsm

4 метода за форматиране на дата в Excel с VBA

Разгледайте следния пример. Съхранихме едни и същи дати в двете Колона B и 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 -> Run Sub/UserForm Можете също така просто да щракнете върху малка икона Play в лентата с подменюта, за да стартирате макроса.

Този код ще форматира датата " 11-01-22 " на " вторник-януари-2022 ".

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

 Sub FormatDate() 'Оригиналната дата е "11-01-22" Range("C5").NumberFormat = "dd-mm-yyy" 'Това ще форматира датата до "11-01-2022" Range("C6").NumberFormat = "ddd-mm-yyy" 'Това ще форматира датата до "Tue-11-2022" Range("C7").NumberFormat = "dddd-mm-yyy" 'Това ще форматира датата до "Tuesday-11-2022" Range("C8").NumberFormat = "dd-mmm-yyy" 'Това ще форматира датата до"11-Ян-2022" Range("C9").NumberFormat = "dd-mmmm-yyy" "Това ще форматира датата до "11-януари-2022" Range("C10").NumberFormat = "dd-mm-yy" "Това ще форматира датата до "11-01-22" Range("C11").NumberFormat = "ddd mmm yyyy" "Това ще форматира датата до "Вторник януари 2022" Range("C12").NumberFormat = "dddd mmmm yyyy" "Това ще форматира датата до "Вторник януари 2022" End Sub 

Преглед

Прочетете повече: Функции Now и Format в 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, "DD-MMMM-YYYY") End Sub 

Вашият код вече е готов за изпълнение.

Ще получите датата " 11 януари 2022 г. " в полето за съобщения.

Прочетете повече: Как да използвате функцията VBA DateValue в Excel

Подобни четива

  • Как да вмъкнете текущата дата в Excel (3 начина)
  • Променлива за дата в кодове на VBA (7 приложения на макроси с примери)
  • Получаване на текущата дата във VBA (3 начина)
  • Как да използвате прекия път за дата в Excel

3. Преобразуване на датата във VBA въз основа на определена част в Excel

Предполагаме, че искате да форматирате определена част от датата, например само деня/месеца/годината, тогава напишете кода по следния начин,

 Sub Date_Format() Range("C5").NumberFormat = "mmmm" 'Това ще форматира датата на "януари" End Sub 

Вашият код вече е готов за изпълнение.

" mmmm " в този код означава дългата форма на името на месеца.

Тъй като датата е " 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-2022" Range("C15").NumberFormat = "mmm-yyy" 'Това ще форматира датата до "Jan-2022" Range("C16").NumberFormat = "dd-yy" 'Това ще форматира датата до "11-22" Range("C17").NumberFormat = "ddd yyyy" 'Това ще форматира датата до "Tue 2022" Range("C18").NumberFormat = "dddd-yyyy" 'Това ще форматира датата до "Tuesday-2022" Range("C19").NumberFormat = "dd-mmm"'Това ще форматира датата до "11-януари" Range("C20").NumberFormat = "dddd-mmmm" 'Това ще форматира датата до "вторник-януари" 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 

Вашият код вече е готов за изпълнение.

Погледнете третия ред на кода, където първо задаваме символа " Пример: " работен лист, след което форматирайте датата на този определен лист на Excel.

Заключение

Тази статия ви показа как да форматирате датата в Excel с VBA . надявам се, че тази статия е била много полезна за вас. Не се колебайте да питате, ако имате някакви въпроси по темата.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.