Format 函数

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

查看一些示例

语法

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

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

参数

说明

expression

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

格式

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

firstdayofweek

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

firstweekofyear

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


设置

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

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

请参阅文章

任何类型

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 支持专员。

×