管理约会、计划和预算 - 使用 Microsoft 365 轻松完成

Format 函数

返回一个VariantString)值,其中包含根据格式表达式中包含的说明设置格式的 表达式 。

警告    使用此函数时出现问题。 某些日历年中的最后一个星期一可以作为第1周的第一周返回到53。 有关详细信息和解决方法,请参阅格式或 DatePart 函数可能返回第一年的星期一的错误周数

查看一些示例

语法

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

Format函数语法具有以下参数:

参数

说明

expression

必需。 任何有效的表达式。

格式

可选。 有效的命名或用户定义的格式表达式。

firstdayofweek

可选。 指定一周的第一天的 常量 。

firstweekofyear

可选。 一个常量,指定一年的第一周。


设置

Format参数可以使用各种设置,具体取决于表达式参数的数据类型。 有关有效的格式表达式的详细信息,请参阅下表中列出的文章。

对于使用此数据类型的表达式 .。。

请参阅文章

任何类型

Format 属性

日期/时间

设置日期和时间字段的格式

数字

设置数字或货币字段的格式

文本和备注

设置文本字段的格式

是/否​​

Format 属性 - Yes/No 数据类型


Firstdayofweek参数具有以下设置:

常数

说明

vbUseSystem

0

使用 NLS API 设置。

VbSunday

1

星期日(默认值)

vbMonday

2

星期一

vbTuesday

3

星期二

vbWednesday

4

星期三

vbThursday

5

星期四

vbFriday

6

星期五

vbSaturday

7

星期六


Firstweekofyear参数具有以下设置:

常数

说明

vbUseSystem

0

使用 NLS API 设置。

vbFirstJan1

1

从1月1日出现的星期开始(默认)。

vbFirstFourDays

2

从一年中至少有四天的第一周开始。

vbFirstFullWeek

3

从一年的第一个完整周开始。


备注

进行格式设置

执行此操作

数字

使用预定义的命名数字格式或创建用户定义的数字格式。

日期和时间

使用预定义的命名日期/时间格式或创建用户定义的日期/时间格式。

日期和时间序列号

使用日期和时间格式或数字格式。

Strings

创建你自己的用户定义的字符串格式。


如果你尝试在不指定格式的情况下设置数字格式,则format将提供类似于Str函数的功能,尽管它是跨国感知的。 但是,使用格式设置为字符串的正数将不包含为值的符号保留的前导空格;使用Str转换的将保留先导空间。

如果要设置非本地化数字字符串的格式,则应使用用户定义的数字格式以确保获得所需的外观。

注意: 如果Calendar属性设置为公历,并且格式指定日期格式,则提供的表达式必须为公历。 如果 "Visual Basic日历" 属性设置为 "回历",则提供的表达式必须为回历。

如果日历为公历,则格式表达式符号的含义不会更改。 如果日历是回历,则所有日期格式符号(如 dddd、mmmm、yyyy)都具有相同的含义,但应用于回历。 格式符号保留为英语;导致文本显示(例如 AM 和 PM)的符号显示与该符号关联的字符串(英语或阿拉伯语)。 当日历为回历时,某些符号的范围会发生变化。

符号

Range

d

1-30

dd

1-30

ww

1-51

mmm

显示完整月份名称(阿拉伯回历月份名称没有缩写)。

y

1-355

yyyy

100-9666

示例

在表达式中使用 Format 函数    可以在任何可使用表达式的地方使用格式。 例如,你可以在查询中使用它作为字段别名的一部分,或在窗体或报表上的文本框的 "控件来源" 属性中使用它。 以下示例显示了在报表的Filter属性中可能使用的表达式,用于将输出限制为上一周的记录。

Format ([日期],"ww") = Format (Now (),"ww")-1

在此示例中,报表的记录源包含一个名为 "Date" 的字段,其中包含每个特定记录的修改日期,以及在报表上使用的日期。 当运行报表时,其结果将筛选为仅显示 "日期" 字段中值的星期("格式" ("日期","ww"))等于前一周(Format (Now (),"ww")-1)。

在 VBA 代码中使用 Format 函数    

注意: 下面的示例演示了在 Visual Basic for Applications (VBA)模块中使用此函数的示例。 有关使用 VBA 的详细信息,请在 "搜索" 旁边的下拉列表中选择 "开发人员引用",然后在搜索框中输入一个或多个字词。

此示例显示format函数对值进行格式设置的各种用法,使用命名格式和用户定义的格式。 对于日期分隔符(/)、时间分隔符()和 AM/PM 文本,系统显示的实际格式化输出取决于运行代码的计算机的区域设置。 当时间和日期在开发环境中显示时,将使用代码区域设置的短时间格式和短日期格式。 通过运行代码显示时,将使用系统区域设置的短时间格式和短日期格式,这可能不同于代码区域设置。 对于本示例,假定美国英语区域设置为。

使用当前系统短时间设置和短日期设置,在开发环境中显示MyTimeMyDate

Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#
' Returns current system time in the system-defined long time format.
MyStr = Format(Time, "Long Time")
' Returns current system date in the system-defined long date format.
MyStr = Format(Date, "Long Date")
MyStr = Format(MyTime, "h:m:s") ' Returns "17:4:23".
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' Returns "05:04:23 PM".
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' Returns "Wednesday,
' Jan 27 1993".
' If format is not supplied, a string is returned.
MyStr = Format(23) ' Returns "23".
' User-defined formats.
MyStr = Format(5459.4, "##,##0.00") ' Returns "5,459.40".
MyStr = Format(334.9, "###0.00") ' Returns "334.90".
MyStr = Format(5, "0.00%") ' Returns "500.00%".
MyStr = Format("HELLO", "<") ' Returns "hello".
MyStr = Format("This is it", ">") ' Returns "THIS IS IT".


使用具有零长度字符串的格式

在 Microsoft Access 版本2.0 及更早版本中,可以使用Format函数为 零长度字符串 返回一个值,对一个值返回另一个值。 例如,可以使用格式表达式,如下所示,使用format函数,从代码中返回适当的字符串值:

Dim varX As Variant
Dim varStrX As Variant
' Assign some value to varStrX and pass to Format function.
varX = Format(varStrX, "@;ZLS;Null")

在 Microsoft Access 版本97及更高版本中,必须针对Null大小写进行单独测试,然后根据结果返回适当的值。 例如,可以在具有Format函数的表达式中使用IIf函数,如下所示:

varX = IIf(IsNull(varStrX),"Null", Format(varStrX, "@;ZLS"))

仅当使用format函数设置字符串的格式时,此更改才适用,具体取决于它是零长度字符串还是 Null 值。 与format函数一起使用的其他格式表达式的工作方式与以前版本中的相同。

如果将数据库从 Microsoft Access 版本2.0 和更早版本转换为 Microsoft Access 2002 或更高版本,则必须更改代码以单独针对 Null 大小写进行测试。

另请参阅

字符串函数以及如何使用它们

需要更多帮助?

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×