Оглавление
Внедрение макрос 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 Я надеюсь, что эта статья была очень полезна для вас. Не стесняйтесь спрашивать, если у вас есть какие-либо вопросы по этой теме.