Как форматировать дату с помощью 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() 'Original Date is "11-01-22" Range("C5").NumberFormat = "dd-mm-yyy" 'This will format the date to "11-01-2022" Range("C6").NumberFormat = "ddd-mm-yyy" 'This will format the date to "Tue-11-2022" Range("C7").NumberFormat = "dddd-mm-yyy" 'This will format the date to "Tuesday-11-2022" Range("C8").NumberFormat = "dd-mmm-yyy" 'This will format the date to"11-Jan-2022" Range("C9").NumberFormat = "dd-mmm-yyy" 'Это отформатирует дату до "11-January-2022" Range("C10").NumberFormat = "dd-mm-yy" 'Это отформатирует дату до "11-01-22" Range("C11").NumberFormat = "ddd mmm yyyy" 'Это отформатирует дату до "Tue Jan 2022" Range("C12").NumberFormat = "dddd mmmm yyyy" 'Это отформатирует дату до "Tuesday January 2022" End Sub 

Обзор

Читать далее: Функции "Сейчас" и "Формат" в 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 

Теперь ваш код готов к выполнению.

The " мммм " в этом коде означает длинную форму названия месяца.

Поскольку дата " 11 января 2022 года ", поэтому этот фрагмент кода вернет " Январь ".

Вы можете использовать этот код для форматирования и извлечения из даты любой конкретной части, которая вам нужна.

 Sub FormatDateValue() 'Original Date is "11-01-22" Range("C5").NumberFormat = "dd" 'This will format date to "11" Range("C6").NumberFormat = "ddd" 'This will format date to "Tue" Range("C7").NumberFormat = "dddd" 'This will format date to "Tuesday" Range("C8").NumberFormat = "m" 'This will format date to "1" Range("C9").NumberFormat = "mm" 'This willформатирует дату до "01" Range("C10").NumberFormat = "mmm" 'Это форматирует дату до "Jan" Range("C11").NumberFormat = "yy" 'Это форматирует дату до "22" Range("C12").NumberFormat = "yyyy" 'Это форматирует дату до "2022" Range("C13").NumberFormat = "dd-mm" 'Это форматирует дату до "11-01" Range("C14").NumberFormat = "mm-yyy" 'Это форматируетдату до "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-yyy" 'Это отформатирует дату до "Tuesday-2022" Range("C19").NumberFormat = "dd-mmm"'Это отформатирует дату в "11-Jan" 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 

Теперь ваш код готов к выполнению.

Посмотрите на 3-ю строку кода, где сначала мы устанавливаем " Пример " рабочего листа, затем отформатируйте дату этого определенного листа Excel.

Заключение

В этой статье было показано, как форматировать дату в Excel с помощью VBA Я надеюсь, что эта статья была очень полезна для вас. Не стесняйтесь спрашивать, если у вас есть какие-либо вопросы по этой теме.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.