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