Форматы дат в excel миф

Преобразование чисел, дат и строк в настраиваемый текстовый формат из кода VBA Excel с помощью функции Format. Синтаксис, параметры, символы, примеры.

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

Синтаксис и параметры

Format(Expression, [FormatExpression], [FirstDayOfWeek], [FirstWeekOfYear])

  • Expression – любое допустимое выражение (переменная), возвращающее числовое значение или строку (обязательный параметр).
  • FormatExpression – выражение формата, именованное или содержащее инструкции из специальных символов (необязательный параметр).
  • FirstDayOfWeek – константа, задающая первый день недели (необязательный параметр).
  • FirstWeekOfYear – константа, задающая первую неделю года (необязательный параметр).

Именованные выражения форматов

Именные форматы даты и времени

Имя формата Описание
General Date Стандартное отображение даты и времени в соответствии с параметрами системы.
Long Date Длинный формат даты.
Medium Date Средний формат даты.
Short Date Краткий формат даты.
Long Time Длинный формат времени.
Medium Time Средний формат времени.
Short Time Краткий формат времени.

Проверьте отображение даты и времени с использованием именованных форматов на вашем компьютере при помощи следующего кода VBA Excel:

Sub FormatDateTime()

MsgBox «General Date:  « & Format(Now, «General Date») & vbNewLine _

& vbNewLine & «Long Date:  « & Format(Now, «Long Date») & vbNewLine _

& vbNewLine & «Medium Date:  « & Format(Now, «Medium Date») & vbNewLine _

& vbNewLine & «Short Date:  « & Format(Now, «Short Date») & vbNewLine _

& vbNewLine & «Long Time:  « & Format(Now, «Long Time») & vbNewLine _

& vbNewLine & «Medium Time:  « & Format(Now, «Medium Time») & vbNewLine _

& vbNewLine & «Short Time:  « & Format(Now, «Short Time»)

End Sub

Скорее всего, результат будет таким:

Отображение даты и времени в соответствии с именованными форматами

Именованные форматы чисел

Имя формата Описание
General Number Стандартное отображение числа без знака разделителя групп разрядов.
Currency Денежный формат.
Fixed Отображение числа без знака разделителя групп разрядов с двумя цифрами после разделителя целой и дробной части.
Standard Отображение числа со знаком разделителя групп разрядов и с двумя цифрами после разделителя целой и дробной части.
Percent Процентный формат: отображение числа, умноженного на 100, со знаком процента (%), добавленного справа.
Scientific Отображение числа в экспоненциальном виде.
Yes/No Возвращается «Нет», если число равно 0, иначе отображается «Да».
True/False Возвращается «Ложь», если число равно 0, иначе отображается «Истина».
On/Off Возвращается «Выкл», если число равно 0, иначе отображается «Вкл».

Проверяем работу именованных форматов на числах 2641387.7381962 и 0 с помощью кода VBA Excel:

Sub FormatNumber()

Dim n As Double

n = 2641387.7381962

‘n = 0

MsgBox «Форматируемое число = « & n & vbNewLine _

& vbNewLine & «General Number:  « & Format(n, «General Number») & vbNewLine _

& vbNewLine & «Currency:  « & Format(n, «Currency») & vbNewLine _

& vbNewLine & «Fixed:  « & Format(n, «Fixed») & vbNewLine _

& vbNewLine & «Standard:  « & Format(n, «Standard») & vbNewLine _

& vbNewLine & «Percent:  « & Format(n, «Percent») & vbNewLine _

& vbNewLine & «Scientific:  « & Format(n, «Scientific») & vbNewLine _

& vbNewLine & «Yes/No:  « & Format(n, «Yes/No») & vbNewLine _

& vbNewLine & «True/False:  « & Format(n, «True/False») & vbNewLine _

& vbNewLine & «On/Off:  « & Format(n, «On/Off»)

End Sub

Получаем следующий результат:

Отображение числа в соответствии с именованными форматамиОтображение нуля в соответствии с именованными форматами числа

Вместо вопросительного знака в отображении числа в формате Currency, по идее, должен быть знак валюты (₽ или руб.).

Специальные символы для выражений форматов

Символы для форматов даты и времени

Символ Описание
Точка (.) Разделитель компонентов даты (день, месяц, год). Используется при отображении месяца в виде числа.
Пробел Разделитель компонентов даты (день, месяц, год). Используется при отображении месяца прописью.
Двоеточие (:) Разделитель компонентов времени (часы, минуты, секунды).
d День в виде числа без нуля в начале (1–31).
dd День в виде числа с нулем в начале (01–31).
m Месяц в виде числа без нуля в начале (1–12). Если (m) следует после (h) или (hh), отображаются минуты (0–59).
mm Месяц в виде числа с нулем в начале (01–12). Если (mm) следует после (h) или (hh), отображаются минуты (00–59).
mmm Месяц прописью в сокращенном виде (янв–дек).
mmmm Полное название месяца (январь–декабрь).
y День года в виде числа (1–366).
yy Год в виде 2-значного числа (00–99).
yyyy Год в виде 4-значного числа (1900–9999).
h Часы в виде числа без нуля в начале (0–23).
hh Часы в виде числа с нулем в начале (00–23).
n (m) Минуты в виде числа без нуля в начале (0–59).
nn (mm) Минуты в виде числа с нулем в начале (00–59).
s Секунды в виде числа без нуля в начале (0–59).
ss Секунды в виде числа с нулем в начале (00–59).

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

Примеры отображения даты с помощью разных по количеству наборов символа d:

Sub DataIsD()

MsgBox «d:  « & Format(Now, «d») & vbNewLine _

& vbNewLine & «dd:  « & Format(Now, «dd») & vbNewLine _

& vbNewLine & «ddd:  « & Format(Now, «ddd») & vbNewLine _

& vbNewLine & «dddd:  « & Format(Now, «dddd») & vbNewLine _

& vbNewLine & «ddddd:  « & Format(Now, «ddddd») & vbNewLine _

& vbNewLine & «dddddd:  « & Format(Now, «dddddd»)

End Sub

Форматы даты, полученные с помощью разных по количеству наборов символа d

Символы для числовых форматов

Символ Описание
Точка (.) Десятичный разделитель.
Запятая (,) Разделитель групп разрядов. В отображаемых числах заполняется пробелом.
(0) Заполнитель, который отображает цифру или ноль. Используется, когда нужны ведущие нули или нули в конце числа.
(#) Заполнитель, который отображает цифру или ничего не отображает. Используется, когда не нужны ведущие нули или нули в конце числа.
(%) Заполнитель процента. Выражение умножается на 100, а знак процента (%) вставляется на той позиции, где он указан в строке формата.
(E- E+ e- e+) Экспоненциальный формат.

Примеры использования символов в выражениях числовых форматов VBA Excel:

Sub FormatNumber2()

Dim n As Double

n = 2641387.7381962

‘n = 0.2397842

MsgBox «Форматируемое число = « & n & vbNewLine _

& vbNewLine & «0.##:  « & Format(n, «0.##») & vbNewLine _

& vbNewLine & «000.###:  « & Format(n, «000.###») & vbNewLine _

& vbNewLine & «#,###.###:  « & Format(n, «#,###.###») & vbNewLine _

& vbNewLine & «0 %:  « & Format(n, «0 %») & vbNewLine _

& vbNewLine & «0.### E-:  « & Format(n, «0.### E-«) & vbNewLine _

& vbNewLine & «0.### E+:  « & Format(n, «0.### E+»)

End Sub

Символы для текстовых форматов

Символ Описание
At-символ (@) Заполнитель для символов, отображающий знак или пробел.
Амперсанд (&) Заполнитель для символов, отображающий знак или ничего (пустая строка).
Меньше (<) Принудительный перевод всех буквенных символов в нижний регистр.
Больше (>) Принудительный перевод всех буквенных символов в верхний регистр.

Примеры использования символов в выражениях строковых форматов VBA Excel:

Sub FormatString()

MsgBox «Номер телефона:  « & Format(«1234567890», «+7 (@@@) @@@-@@-@@») & vbNewLine _

& vbNewLine & «Серия и номер паспорта:  « & Format(«1234567890», «&& && &&&&») & vbNewLine _

& vbNewLine & «Нижний регистр:  « & Format(«Нижний регистр», «<«) & vbNewLine _

& vbNewLine & «Верхний регистр: « & Format(«Верхний регистр», «>»)

End Sub

Результаты форматирования строк с помощью специальных символов для функции Format

Форматы для различных значений одного выражения

Различные форматы для разных числовых значений

В выражении формата для чисел предусмотрено от одного до четырех разделов, отделяемых друг от друга точкой с запятой. Отображаемая строка зависит от значения, возвращенного параметром Expression функции Format.

Количество разделов Результат форматирования
Один раздел Выражение формата применяется ко всем значениям.
Два раздела Первый раздел применяется к положительным значениям и нулям, второй – к отрицательным значениям.
Три раздела Первый раздел применяется к положительным значениям, второй – к отрицательным значениям, третий – к нулям.
Четыре раздела Первый раздел применяется к положительным значениям, второй – к отрицательным значениям, третий – к нулям, четвертый – к значениям Null.

Пример использования четырех разделов в выражении формата числовых значений:

Sub FormatDifferentValues()

MsgBox «Число 1234,5678:  « & _

Format(1234.5678, «#,##0.00 руб.;Отрицательное число;Ноль рублей;Значение Null») _

& vbNewLine & vbNewLine & «Число -25:  « & _

Format(25, «#,##0.00 руб.;Отрицательное число;Ноль рублей;Значение Null») _

& vbNewLine & vbNewLine & «Число 0:  « & _

Format(0, «#,##0.00 руб.;Отрицательное число;Ноль рублей;Значение Null») _

& vbNewLine & vbNewLine & «Null:  « & _

Format(Null, «#,##0.00 руб.;Отрицательное число;Ноль рублей;Значение Null»)

End Sub

Различные форматы для разных строковых значений

В выражении формата для строк предусмотрено до двух разделов, отделяемых друг от друга точкой с запятой. Отображаемая строка зависит от текста, возвращенного параметром Expression функции Format.

Количество разделов Результат форматирования
Один раздел Выражение формата применяется ко всем строковым данным.
Два раздела Первый раздел применяется к строковым данным, второй – к значениям Null и пустым строкам («»).

Пример использования двух разделов в выражении формата строк:

Sub FormatString2()

MsgBox «Строка «Белка»:  « & _

Format(«Белка», «@;Пустая строка или Null») _

& vbNewLine & vbNewLine & «Пустая строка:  « & _

Format(«», «@;Пустая строка или Null») _

& vbNewLine & vbNewLine & «Строка «Null»:  « & _

Format(«Null», «@;Пустая строка или Null») _

& vbNewLine & vbNewLine & «Значение Null:  « & _

Format(Null, «@;Пустая строка или Null»)

End Sub

Countdown Timer and Date, Calendar ScoreboardVBA stands for Visual Basic for Applications. It is different from Visual Basic. Microsoft came up with this programming feature to use with the Microsoft Office software suite. It can be used to create programs to be run on Microsoft Excel, Outlook or other components of the MS Office suite. In this intermediate level tutorial, we walk you through VBA Format function for date and time. VBA Format function takes an expression, a date or number value and converts the same into a string. We assume that you know the basic concepts of MS Excel and Visual Basic for Applications. You can learn more about VBA in this excellent course, or of you’re in a hurry, you can take this 24hr VBA trainer course.

How to Assign VBA Date Value to a Variable

You can set the format in any version of Microsoft Excel starting from Excel 2000 to Excel version 2013. You can assign any date format as a value to a variable with the date data type in Excel VBA. However, ensure that values are put between simple hash (#) tags. Here VBA converts the value to a “Date” that can be used in comparisons and other types of statements. The following examples show this:

D1 = #March 24, 2014#
D1 = #3/24/2014#
D1 = #03/24/2014#

VBA will interpret the above statements to the date “March 24, 2014.” Before we move on, to learn more about how you can use VBA with MS Excel, you may want to try out this primer course; or just crash through our VBA tutorial to brush up your understanding.

VBA Format Function

Microsoft Excel Format function accepts the date expression and returns it as a formatted string. The syntax of Format date function looks like this

Format (expression, [format, [firstdayofweek, [firstweekofyear] ] ] )

Let’s take a closer look at the parameters.

  1. Expression stands for the value to be formatted.
  2. Format stands for the format to be applied to the expression. It is optional. In VBA Format Date function you have the option to either define your own format or use some of the MS Excel predefined format.
  3. Firstdayofweek specifies the first day of the week. If it is not declared, the Format function assumes that Sunday is the first day of the week. This parameter is optional.
  4. Firstweekofyear is the value that specifies the first week of the year. However, if this parameter is not declared, then the Format function assumes that the first week begins from January 1.

The table given below displays some of the Excel predefined date format.

Format

Explanation
General Date Displays date depending  upon the system settings
Long Date Displays date  depending upon the system’s long date setting
Medium Date Displays date depending upon the system’s medium date setting
Short Date Displays date depending upon the system’s short date setting
Long Time Displays time depending upon the system’s long time setting
Medium Time Displays time depending upon the system’s medium time setting
Short Time Displays time depending upon the system’s short time setting

The table given below contains the values the parameter “firstdayoftheweek” can take up in your VBA programs.

Constant

Value

Explanation
vbUseSystem 0 Uses the NLS API (National Language Support  Application Program Interface) setting
VbSunday 1 Sunday (default, if parameter is not declared)
vbMonday 2 Monday
vbTuesday 3 Tuesday
vbWednesday 4 Wednesday
vbThursday 5 Thursday
vbFriday 6 Friday
vbSaturday 7 Saturday

The table below lists the possible values of the optional parameter “Firstweekofyear that you can use in your VBA programs. Take a look

Constant Value Explanation
vbUseSystem 0 Uses the NLS API setting
vbFirstJan1 1 The week that contains January 1
vbFirstFourDays 2 The first week that has at least 4 days in the year
vbFirstFullWeek 3 The first full week of the year

Here are a few examples of Format function for Date in Excel VBA to make this function more clear.

1. Format(#24/03/2014#, “Short Date”)    would return ’24/03/2014′

2. Format(#24/03/2014#, “Long Date”)     would return ‘March 24, 2014’

3. Format(#24/03/2014#, “yyyy/mm/dd”)    would return ‘2014/03/24’

We suggest that you work out more examples of your own on  date function format. That’ll help you get more comfortable with the various options.  This course with Mr Excel can help you get a good workout with Excel VBA examples.

User Defined Format Function for date and time

Note that you can also use some pre-defined variants of the Format function for date and time.  The syntax of that looks like this

Format (expression, style)

The table below shows the user-defined Format function for date and time. Read through carefully

Format Explanation
Format (Now, “M”) Displays the current month and date
Format (Now, “MM”) Displays the current month in double digits.
Format (Now, “MMM”) Displays  the abbreviated name of the current month
Format (Now, “MMMM”) Displays the full name of the current month.
Format (Now, “dd/MM/yyyy”) Displays the current date in the day/month/year format.
Format (Now, “MMM,d,yyyy”) Displays the current date in the Month, Day, Year Format
Format (Now, “h:mm:ss tt”) Displays the current time  in the format hour:minute:second and show am/pm
Format (Now, “MM/dd/yyyy  h:mm:ss) Displays current date and time  in the format hour:minute:second

Let’s take a closer look at the user-defined format function for date and time using a simple VBA program.

Sub Newbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
Label1.Text = Format(Now, "M")
Label2.Text = Format(Now, "MM")
Label3.Text = Format(Now, "MMM")
Label4.Text = Format(Now, "MMMM")
Label5.Text = Format(Now, "dd/MM/yyyy")
Label6.Text = Format(Now, "MMM,d,yyyy")
Label7.Text = Format(Now, "h:mm:ss tt")
Label8.Text = Format(Now, "MM/dd/yyyy h:mm:ss tt")
End Sub

When you run this program, it will display the current system date in different formats.

Label1.Text will display March 24
Label2.Text will display 03
Label3.Text will display Mar
Label4.Text will display March
Label5.Text will display 24/03/2014
Label6.Text will display Mar,24,2014
Label7.Text will display 12:49:23 PM
Label8.Text will display 03/24/2014 12:49:23 PM

Characters supported by VBA Date Function

VBA Date functions supports these characters to display date and time. It’s quite a long list, so check out the table below!

Characters Example Description
m 8 Month (numerical without zeros)
mm 08 Month (numerical with zeros)
mmm Sep Month (abbreviated text)
mmmm September Month (full-length text)
d 6 Day (numerical without zeros)
dd 06 Day (numerical with zeros)
ddd Wed Day (abbreviated text)
dddd Wednesday Days (full-length text)
yy 14 Year (last 2 digits)
yyyy 2014 Year (4 digits)
h 9 Hours without zeros (0-23)
hh 09 Hours with zeros (00-23)
n 7 Minutes without zeros (0-59)
nn 07 Minutes with zeros (00-59)
s 5 Seconds without zeros (0-59)
ss 05 Seconds with zeros (00-59)
AM/PM AM Display AM/PM

Let’s use an example to help you to understand the above table better.

Sub date_and_time()
date_example = Now()
Range("C1") = Format(date_example, "mm.dd.yy")
Range("C2") = Format(date_example, "d mmmmyyyy")
Range("C3") = Format(date_example, "mmmm j, yyyy")
Range("C4") = Format(date_example, "ddddd")
Range("C5") = Format(date_example, "mmmm-yy")
Range("C6") = Format(date_example, "mm.dd.yyyyhh:mm")
Range("C7") = Format(date_example, "m.d.yy h:mm AM/PM")
Range("C8") = Format(date_example, "hHmm")
End Sub

In this program we assign the system date and time through the now() to the variable date_example. After the execution of the program, the cells will contain the following values

C1 will contain 03.24.14
C2 will contain 24 March 2014
C3 will contain March 24 2014
C4 will contain Mon 24
C5 will contain March-14
C6 will contain 03.24.2014 15:04
C7 will contain 3.24.14 15:04 PM
C8 will contain 15H04

Given below is an example of using date function to calculate your age. We assume that you have basic programming knowledge. If not please refer our basic tutorial on VBA programming.

Calculating Age In VBA

Function Age(Date1 As Date, Date2 As Date) As String
Dim Year1 As Integer
Dim Month_1 As Integer
Dim Day1 As Integer
Dim Temp As Date
Temp = DateSerial(Year(Date2), Month(Date1), Day(Date1))
Year1 = Year(Date2) - Year(Date1) + (Temp > Date2)
Month1 = Month(Date2) - Month(Date1) - (12 * (Temp > Date2))
Day1 = Day(Date2) - Day(Date1)
If Day1 < 0 Then
Month_1 = Month_1 - 1
Day1 = Day(DateSerial(Year(Date2), Month(Date2) + 1, 0)) + Day1 + 1
End If
Age = Year1 &“years "& Month_1 & " months " & Day1 & " days"
End Function

This program accepts two parameters Date1 and Date2. Date1 is the year of your birth and Date2 is the current date. In the end, you get your age in terms of years, months and days.

Like you’ve just seen, the Format function for date and time comes in variety of options. You can choose the format that you want to display or use in your programs. As always practice makes perfect. Do try these examples for yourself. If you’d like to get more hands on with VBA before  you proceed, this course can help you.  Once you’re ready to step it up a notch, you can try out this Ultimate VBA course. Let us know how it goes!

In this Article

  • Format Dates in VBA
  • NumberFormat – Dates
  • Short Date
  • Long Date
  • Custom dates
  • VBA Format Function
  • VBA Custom Format Builder
  • VBA Format Date in Access

This tutorial will demonstrate how to format dates using VBA.

Format Dates in VBA

There are two methods to format dates using VBA.

  1. The NumberFormat property of Cells / Ranges – To format dates stored in cells
  2. The VBA Format function – To format dates in VBA (ex. variables)

NumberFormat – Dates

The default number format of a cell in Excel is General. You can display values as numbers, text, dates, percentages or currencies by changing the number format. The NumberFormat property can be used in VBA to set the number format of dates in a cell or range.

Note: In order to see the different standard date formats available in Excel go to Home>Number and you’ll see options such as Short Date, Long Date and Time.

vba number format
Number Format Options

Short Date

The Short date number formatting option displays the date in a short, numerical format.

The following code will set the .NumberFormat property of cell A1 to Short date:

Range("A1").NumberFormat = "mm/dd/yyyy"

Long Date

Long date number formatting displays the date in a longer, written format. The following code will set the .NumberFormat property of cell A1 to Long date:

Range("A1").NumberFormat = "dddd, mmmm dd, yyyy"

Custom dates

In order to see the custom number format codes that you can use in VBA to format dates, go to Home>Number and click the Dialog Box Launcher.  Select the Number tab and choose Custom.

vba number format date

You can either select the custom built-in formats for your date or create your own user-defined date formats. The following code will set the .NumberFormat property of cell A1 to a built-in custom date format:

Range("A1").NumberFormat = "mmm-yy"

The result is:

Custom Date Format in VBA

The following code will set the .NumberFormat property of cell A1, to a user-defined custom date format:

Range("A1").NumberFormat = "dddd-dd-mmm-yy"

The result is:

User Defined Custom Date Formatting

By reviewing Excel’s pre-built examples you can learn how NumberFormats should be entered. For more information, read Microsoft’s documentation on number formats for dates.

VBA Format Function

As mentioned above, the NumberFormat method is appropriate for setting the Numberformat of dates stored in Excel cells.  In VBA, you can use the Format Function to convert dates to strings with certain date formatting.

You would use the following syntax to format dates:

Format(String_Representation, NumberFormatCode) where:

String_Representation – the text string representing the date.

NumberFormatCode – the number format code specifying the way the date should be displayed.

The following code shows how to format a text string representation of a date as long date format:

Formatting Dates as Long Dates

MsgBox Format("1/1/2010", "dddd, mmmm dd, yyyy")

The result is:

Format Function in VBA

Notice that the Format Function uses the same date formatting syntax as the NumberFormat above.

The following code shows how to format a text string representation of a date as medium date format:

MsgBox Format("09 October 2012", "Medium Date")

The result is:

Medium Date Formatting in VBA

The following code shows how to format a text string representation of a date as a user-defined format:

MsgBox Format("09 October 2012", "dddd: dd/mm/yy")

Custom Formatting

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!

automacro

Learn More

VBA Custom Format Builder

Our VBA Add-in: AutoMacro contains a Custom Format Builder for the VBA Editor. This allows you to set custom formats and immediately preview the output for your desired value:

vba custom number format

The VBA Add-in contains numerous other “Code Generators”, an extensive code library, and an assortment of other coding tools.  It’s the ultimate add-in for anyone serious about VBA programming!

VBA Format Date in Access

The VBA Format Date function work exactly the same in Access VBA as in Excel VBA.

Function GetDateFilter() As String
'create a string to get information from 2 date fields on a form in Access
   Dim strDateField As String
   If IsNull(Me.txtSDate) = False Then
      If IsNull(Me.txtEDate) = True Then Me.txtEDate = Me.txtSDate
      If strDateField2 = "" Then
        GetDateFilter = strDateField & " Between #" & Format(Me.txtSDate, "mm/dd/yyyy") & "# And # " & Format(Me.txtEDate, "mm/dd/yyyy") & "#"
      End If
   End If
End Function

В этом учебном материале вы узнаете, как использовать Excel функцию Format в Excel (применительно к значениям даты) с синтаксисом и примерами.

Описание

Microsoft Excel функция Format принимает выражение даты и возвращает его в виде форматированной строки.
Функция Format — это встроенная в Excel функция, которая относится к категории функций даты и времени. Её можно использовать как функцию VBA в Excel.
В качестве функции VBA вы можете использовать эту функцию в коде макроса, который вводится через редактор Microsoft Visual Basic Editor.

Синтаксис

Синтаксис функции Format в Microsoft Excel:

Format ( expression, [ format, [ firstdayofweek, [firstweekofyear] ] ] )

Аргументы или параметры

expression
Значение даты для форматирования.
format
Необязательно. Это формат, применяемый к expression. Вы можете определить свой собственный формат или использовать один из названных форматов, предопределенных в Excel, например:

Формат Пояснение
General Date Отображает дату на основе настроек вашей системы
Long Date Отображает дату на основе настройки длинной даты вашей системе
Medium Date Отображает дату на основе средней настройки даты вашей системы
Short Date Отображает дату на основе настройки короткой даты вашей системы
Long Time Отображает время, основанное на настройке длительного времени вашей системы
Medium Time Отображает время на основе средней настройки времени вашей системы
Short Time Отображает время на основе настройки короткого времени вашей системы
firstdayofweek
Необязательно. Это значение, указывающее первый день недели. Если этот параметр не указан, предполагается, что воскресенье — первый день недели. Этот параметр может иметь одно из следующих значений:

Константа Значение Пояснение
vbUseSystem 0 Использует настройку NLS API
VbSunday 1 воскресенье (по умолчанию, если параметр не указан)
vbMonday 2 понедельник
vbTuesday 3 вторник
vbWednesday 4 среда
vbThursday 5 четверг
vbFriday 6 пятница
vbСуббота 7 Суббота
firstweekofyear
Необязательно. Это значение, указывающее первую неделю года. Если этот параметр опущен, предполагается, что неделя, содержащая 1 января, является первой неделей года. Этот параметр может иметь одно из следующих значений:

Константа Значение Пояснение
vbUseSystem 0 Использует настройку NLS API
vbFirstJan1 1 Неделя, содержащая 1 января
vbFirstFourDays 2 Первая неделя, которая имеет не менее 4 дней в году
vbFirstFullWeek 3 Первая полная неделя года

Возвращаемое значение

Функция FORMAT возвращает строковое значение.

Применение

  • Excel для Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2011 для Mac, Excel 2010, Excel 2007, Excel 2003, Excel XP, Excel 2000

Тип функции

  • Функция VBA

Пример (как функция VBA)

Функцию FORMAT можно использовать только в коде VBA в Microsoft Excel.
Рассмотрим несколько примеров функции Excel FORMAT чтобы понять, как использовать Excel функцию FORMAT в коде Excel VBA:

Format(#17/04/2020#, «Short Date»)

Результат: ‘17.04.2020’

Format(#17/04/2020#, «Long Date»)

Результат: ’17 Апрель 2020′

Format(#17/04/2020#, «dd.mm.yyyy»)

Результат: ‘17.04.2020’

Например:

Dim LValue As String

LValue = Format(Date, «dd/mm/yyyy»)

В этом примере переменная LValue теперь будет содержать дату в формате dd/mm/yyyy.

Главная » Функции VBA »

28 Апрель 2011              326773 просмотров

  • Date() — возвращает текущую системную дату. Установить ее можно при помощи одноименного оператора, например, так:
  • Time() — возвращает текущее системное время
  • Now() — возвращает дату и время вместе.
  • DateAdd() — возможность добавить к дате указанное количество лет, кварталов, месяцев и так далее — вплоть до секунд. Интервалы(год, месяц и т.д.) указываются в текстовом формате. Список допустимых значений:
    «yyyy» Год
    «q» Квартал
    «m» Месяц
    «y» День года
    «d» День
    «w» День недели
    «ww» Неделя
    «h» Час
    «n» Минута
    «s» Секунда
    Сам синтаксис обращения незамысловат. Сначала указываем интервал, затем сколько единиц добавить и самый последний аргумент — к какой дате(включая время, кстати). Например, чтобы добавить 3 года к текущей дате-времени, надо записать функцию так:
    MsgBox DateAdd(«yyyy», 3, Now)
    Но что интереснее — можно не только добавлять, но и отнимать. Функция не изменится, мы просто должны записать кол-во добавляемых периодов со знаком минус. Отнимем три года от текущей даты-времени:
    MsgBox DateAdd(«yyyy», -3, Now)
  • DateDiff() — возможность получить разницу между датами (опять таки в единицах от лет до секунд).
        Dim lDaysCnt As Long
        lDaysCnt = DateDiff("d", "20.11.2012", Now)
        MsgBox "С 20.11.2012 прошло дней: " & lDaysCnt

    Первый аргумент определяет период времени, в котором необходимо вернуть разницу между датами. Допустимые значения:
    «yyyy» Год
    «q» Квартал
    «m» Месяц
    «y» День года
    «d» День
    «w» День недели
    «ww» Неделя
    «h» Час
    «n» Минута
    «s» Секунда
    Наиболее полезна DateDiff при вычислении полных лет. Например, чтобы вычислить сколько лет на текущий момент человеку, в зависимости от даты рождения, можно использовать функцию так:

    MsgBox DateDiff("yyyy", "20.12.1978", Now)

    Без этой функции вычислить кол-во полных лет гораздо сложнее.

  • DatePart() — функция возвращает указанную часть даты (например, только год, только месяц или только день недели), на основании заданной даты. Часто применяется для получения номера недели для даты.
    Первый аргумент — период времени. Принимаемые значения те же, что и для функции DateDiff(годы, месяцы, недели и т.д.)
    Второй аргумент — непосредственно дата, часть которой необходимо получить:

    MsgBox "Номер недели года: " & DatePart("ww", Now)
  • DateSerial() — возможность создать значение даты, задавая месяц, год и день числовыми значениями:
  • MsgBox DateSerial(2012, 6, 7)
  • DateValue()— делает то же, что и DateSerial(). Отличия — в формате принимаемых значений. Эта функция в качестве аргумента принимает дату в текстовом формате и преобразует её в формат даты:
        MsgBox DateValue("07.06.12")

    Аналогичным образом (для времени) работают TimeSerial() и TimeValue()

  • Day(), Year(), Month(), Weekday(), Hour(), Minute(), Second() — специализированные заменители функции DatePart(), которые возвращают нужную часть даты/времени (которую именно — видно из названия).
  • MonthName() — возвращает имя месяца словами по его номеру. Возвращаемое значение зависит от региональных настроек. Если они русские, то вернется русское название месяца.
  • Timer() — возвращает количество секунд, прошедших с полуночи.

Статья помогла? Сделай твит, поделись ссылкой с друзьями!

Like this post? Please share to your friends:
  • Форматы для функции текст excel
  • Форматы данных с которыми работает ms excel
  • Форматировать в формате excel
  • Форматы данных определены excel
  • Форматировать xlsx в word