1、Abs 函 数返 回 参 数 的 绝 对 值 , 其 类 型 和 参 数 相 同 。语 法Abs(number)必 要 的 number 参 数 是 任 何 有 效 的 数 值 表 达 式 , 如 果 number 包 含 Null, 则 返回 Null, 如 果 number 是 未 初 始 化 的 变 量 , 则 返 回 0。说 明一 个 数 的 绝 对 值 是 将 正 负 号 去 掉 以 后 的 值 。 例 如 ,ABS(-1) 和 ABS(1) 都 返 回 1。Array 函 数返 回 一 个 包 含 数 组 的 Variant。语 法Array(arglist)所 需 的 argli
2、st 参 数 是 一 个 用 逗 号 隔 开 的 值 表 , 这 些 值 用 于 给 Variant 所 包 含的 数 组 的 各 元 素 赋 值 。 如 果 不 提 供 参 数 , 则 创 建 一 个 长 度 为 0 的 数 组 。说 明用 来 表 示 数 组 元 素 的 符 号 由 变 量 名 、 圆 括 号 以 及 括 号 中 的 所 需 元 素 的 索 引 号 组成 。 在 下 面 的 示 例 中 , 第 一 条 语 句 创 建 一 个 Variant 的 变 量 A。 第 二 条 语 句 将一 个 数 组 赋 给 变 量 A。 最 后 一 条 语 句 将 该 数 组 的 第 二 个
3、元 素 的 值 赋 给 另 一 个 变量 。Dim A As VariantA = Array(10,20,30)B = A(2)使 用 Array 函 数 创 建 的 数 组 的 下 界 受 Option Base 语 句 指 定 的 下 界 的 决 定 ,除 非 Array 是 由 类 型 库 ( 例 如 VBA.Array )名 称 限 定 。 如 果 是 由 类 型 库 名 称 限定 , 则 Array 不 受 Option Base 的 影 响 。注 意 没 有 作 为 数 组 声 明 的 Variant 也 可 以 表 示 数 组 。 除 了 长 度 固 定 的 字 符 串 以及
4、用 户 定 义 类 型 之 外 , Variant 变 量 可 以 表 示 任 何 类 型 的 数 组 。 尽 管 一 个 包 含 数组 的 Variant 和 一 个 元 素 为 Variant 类 型 的 数 组 在 概 念 上 有 所 不 同 , 但 对 数 组元 素 的 访 问 方 式 是 相 同 的 。Asc 函 数返 回 一 个 Integer, 代 表 字 符 串 中 首 字 母 的 字 符 代 码 。语 法Asc(string)必 要 的 string 参 数 可 以 是 任 何 有 效 的 字 符 串 表 达 式 。 如 果 string 中 没 有 包 含任 何 字 符 ,
5、 则 会 产 生 运 行 时 错 误 。说 明在 非 DBCS 系 统 下 , 返 回 值 范 围 为 0 255 。 在 DBCS 系 统 下 , 则 为 -3276832767。注 意 AscB 函 数 作 用 于 包 含 在 字 符 串 中 的 字 节 数 据 , AscB 返 回 第 一 个 字 节 的 字符 代 码 , 而 非 字 符 的 字 符 代 码 。 AscW 函 数 返 回 Unicode 字 符 代 码 , 若 平 台 不 支持 Unicode, 则 与 Asc 函 数 功 能 相 同 。Atn 函 数返 回 一 个 Double, 指 定 一 个 数 的 反 正 切 值
6、 。语 法Atn(number)必 要 的 number 参 数 是 一 个 Double或 任 何 有 效 的 数 值 表 达 式 。说 明Atn 函 数 的 参 数 值 (number) 为 直 角 三 角 形 两 边 的 比 值 并 返 回 以 弧 度 为 单 位 的角 。 这 个 比 值 是 角 的 对 边 长 度 除 以 角 的 邻 边 长 度 之 商 。值 的 范 围 在 -pi/2 和 pi/2 弧 度 之 间 。为 了 将 角 度 转 换 为 弧 度 , 请 将 角 度 乘 以 pi/180。 为 了 将 弧 度 转 换 为 角 度 , 请 将弧 度 乘 以 180/pi。注
7、意 Atn 是 Tan 的 反 三 角 函 数 , Tan 的 参 数 值 为 角 度 , 返 回 直 角 三 角 形 的 两 条边 的 比 值 。 不 要 将 Atn 和 余 切 函 数 混 淆 , 余 切 函 数 值 是 正 切 函 数 值 的 倒 数 ,cotangent = (1/tangent)。CallByName 函 数执 行 一 个 对 象 的 方 法 , 或 者 设 置 或 返 回 一 个 对 象 的 属 性 。语 法CallByName(object, procname, calltype,args()CallByName 函 数 的 语 法 有 以 下 命 名 参 数 :
8、部 分 描 述object 必 需 的 ; 变 体 型 ( 对 象 ) 。 函 数 将 要 执 行 的 对 象 的 名 称 。procname 必 需 的 ; 变 体 型 ( 字 符 串 ) 。 一 个 包 含 该 对 象 的 属 性 名 称 或 者 方 法 名 称的 字 符 串 表 达 式 。calltype 必 需 的 ; 常 数 。 一 个 vbCallType 类 型 的 常 数 , 代 表 正 在 被 调 用 的 过 程的 类 型 。args() 可 选 的 : 变 体 型 ( 数 组 ) 。说 明CallByName 函 数 用 于 获 取 或 者 设 置 一 个 属 性 , 或
9、者 在 运 行 时 使 用 一 个 字 符 串 名称 来 调 用 一 个 方 法 。在 下 面 的 例 子 中 , 第 一 行 使 用 CallByName 来 设 置 一 个 文 本 框 的 MousePointer属 性 , 第 二 行 得 到 MousePointer 属 性 的 值 , 第 三 行 调 用 Move 方 法 来 移 动 文 本框 :CallByName Text1, “MousePointer“, vbLet, vbCrosshairResult = CallByName (Text1, “MousePointer“, vbGet)CallByName Text1, “
10、Move“, vbMethod, 100, 100类 型 转 换 函 数每 个 函 数 都 可 以 强 制 将 一 个 表 达 式 转 换 成 某 种 特 定 数 据 类 型 。语 法CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)CStr(expression)必 要 的 express
11、ion 参 数 可 以 是 任 何 字 符 串 表 达 式 或 数 值 表 达 式 。返 回 类 型函 数 名 称 决 定 返 回 类 型 , 如 下 所 示 :函 数 返 回 类 型 expression 参 数 范 围CBool Boolean 任 何 有 效 的 字 符 串 或 数 值 表 达 式 。CByte Byte 0 至 255。CCur Currency -922,337,203,685,477.5808 至 922,337,203,685,477.5807。CDate Date 任 何 有 效 的 日 期 表 达 式 。CDbl Double 负 数 从 -1.7976931
12、3486231E308 至-4.94065645841247E-324 ; 正 数 从4.94065645841247E-324 至 1.79769313486232E308。CDec Decimal 零 变 比 数 值 , 即 无 小 数 位 数 值 , 为+/-79,228,162,514,264,337,593,543,950,335。 对 于 28 位小 数 的 数 值 , 范 围 则 为+/-7.9228162514264337593543950335; 最 小 的 可 能 非 零值 是 0.0000000000000000000000000001。CInt Integer -32,
13、768 至 32,767, 小 数 部 分 四 舍 五 入 。CLng Long -2,147,483,648 至 2,147,483,647, 小 数 部 分 四 舍 五 入 。CSng Single 负 数 为 -3.402823E38 至 -1.401298E-45 ; 正 数 为1.401298E-45 至 3.402823E38。CStr String 依 据 expression 参 数 返 回 Cstr。CVar Variant 若 为 数 值 , 则 范 围 与 Double 相 同 ; 若 不 为 数 值 , 则 范围 与 String 相 同 。说 明如 果 传 递 给 函
14、 数 的 expression 超 过 转 换 目 标 数 据 类 型 的 范 围 , 将 发 生 错 误 。通 常 , 在 编 码 时 可 以 使 用 数 据 类 型 转 换 函 数 , 来 体 现 某 些 操 作 的 结 果 应 该 表 示 为特 定 的 数 据 类 型 , 而 不 是 缺 省 的 数 据 类 型 。 例 如 , 当 单 精 度 、 双 精 度 或 整 数 运 算发 生 的 情 况 下 , 使 用 CCur 来 强 制 执 行 货 币 运 算 。应 该 使 用 数 据 类 型 转 换 函 数 来 代 替 Val, 以 使 国 际 版 的 数 据 转 换 可 以 从 一 种
15、数 据类 型 转 换 为 另 一 种 。 例 如 , 当 使 用 Ccur 时 , 不 同 的 小 数 点 分 隔 符 、 千 分 位 分 隔符 和 各 种 货 币 选 项 , 依 据 系 统 的 区 域 设 置 都 会 被 妥 善 识 别 。当 小 数 部 分 恰 好 为 0.5 时 , Cint 和 CLng 函 数 会 将 它 转 换 为 最 接 近 的 偶 数 值 。例 如 , 0.5 转 换 为 0、 1.5 转 换 为 2。 Cint 和 CLng 函 数 不 同 于 Fix 和 Int 函数 , Fix 和 Int 函 数 会 将 小 数 部 分 截 断 而 不 是 四 舍 五
16、入 。 并 且 Fix 和 Int 函数 总 是 返 回 与 传 入 的 数 据 类 型 相 同 的 值 。使 用 IsDate 函 数 , 可 判 断 date 是 否 可 以 被 转 换 为 日 期 或 时 间 。 Cdate 可 用 来识 别 日 期 文 字 和 时 间 文 字 , 以 及 落 入 可 接 受 的 日 期 范 围 内 的 数 值 。 当 转 换 一 个 数字 成 为 日 期 时 , 是 将 整 数 部 分 转 换 为 日 期 , 小 数 部 分 转 换 为 从 午 夜 起 算 的 时 间 。CDate 依 据 系 统 上 的 区 域 设 置 来 决 定 日 期 的 格 式
17、 。 如 果 提 供 的 格 式 为 不 可 识 别 的日 期 设 置 , 则 不 能 正 确 判 断 年 、 月 、 日 的 顺 序 。 另 外 , 长 日 期 格 式 , 若 包 含 有 星期 的 字 符 串 , 也 不 能 被 识 别 。CVDate 函 数 也 提 供 对 早 期 VisualBasic 版 本 的 兼 容 性 。 CVDate 函 数 的 语 法 与CDate 函 数 是 完 全 相 同 的 , 不 过 , CVDate 是 返 回 一 个 Variant, 它 的 子 类 型 是Date, 而 不 是 实 际 的 Date 类 型 。 因 为 现 在 已 有 真 正
18、 的 Date 类 型 , 所 以 CVDate也 不 再 需 要 了 。 转 换 一 个 表 达 式 成 为 Date, 再 赋 值 给 一 个 Variant, 也 可 以 达到 同 样 的 效 果 。 也 可 以 使 用 这 种 技 巧 将 其 他 真 正 的 数 据 类 型 转 换 为 对 等 的Variant 子 类 型 。注 意 CDec 函 数 不 能 返 回 独 立 的 数 据 类 型 , 而 总 是 返 回 一 个 Variant, 它 的 值 已经 被 转 换 为 Decimal 子 类 型 。Choose 函 数从 参 数 列 表 中 选 择 并 返 回 一 个 值 。语
19、 法Choose(index, choice-1, choice-2, . , choice-n)Choose 函 数 的 语 法 具 有 以 下 几 个 部 分 :部 分 描 述index 必 要 参 数 , 数 值 表 达 式 或 字 段 , 它 的 运 算 结 果 是 一 个 数 值 , 且 界 于 1 和 可 选 择的 项 目 数 之 间 。choice 必 要 参 数 , Variant 表 达 式 , 包 含 可 选 择 项 目 的 其 中 之 一 。说 明Choose 会 根 据 index 的 值 来 返 回 选 择 项 列 表 中 的 某 个 值 。 如 果 index 是
20、1,则 Choose 会 返 回 列 表 中 的 第 1 个 选 择 项 。 如 果 index 是 2, 则 会 返 回 列 表 中的 第 2 个 选 择 项 , 以 此 类 推 。可 以 使 用 Choose 来 查 阅 一 个 列 表 中 的 项 目 。 例 如 , 如 果 index 所 指 定 的 值 为3, 而 choice-1=“one“、 choice-2=“two“、 且 choice-3=“three“, 那 么 Choose将 返 回 “three“。 当 index 代 表 一 选 项 组 中 的 值 时 , 则 这 项 功 能 将 会 特 别 有 用 。即 使 它 只
21、 返 回 一 个 选 项 值 , Choose 仍 然 会 计 算 列 表 中 的 每 个 选 择 项 。 所 以 应 该注 意 到 这 项 副 作 用 。 例 如 , 当 在 每 个 选 择 项 表 达 式 中 使 用 了 MsgBox 函 数 作 为 其中 的 一 部 分 时 , 每 计 算 一 个 选 择 项 , 就 会 显 示 一 次 消 息 框 。当 index小 于 1 或 大 于 列 出 的 选 择 项 数 目 时 , Choose 函 数 返 回 Null。如 果 index 不 是 整 数 , 则 会 先 四 舍 五 入 为 与 其 最 接 近 的 整 数 。Chr 函 数返
22、 回 String, 其 中 包 含 有 与 指 定 的 字 符 代 码 相 关 的 字 符 。语 法Chr(charcode)必 要 的 charcode 参 数 是 一 个 用 来 识 别 某 字 符 的 Long。说 明0 到 31 之 间 的 数 字 与 标 准 的 非 打 印 ASCII 代 码 相 同 。 例 如 , Chr(10) 可 以 返回 换 行 字 符 。 charcode 的 正 常 范 围 为 0 255。 然 而 , 在 DBCS 系 统 , charcode的 实 际 范 围 为 -32768 到 65535。注 意 ChrB 函 数 作 用 于 包 含 在 St
23、ring 中 的 字 节 数 据 。 ChrB 总 是 返 回 一 个 单 字节 , 而 不 是 返 回 一 个 字 符 , 一 个 字 符 可 能 是 一 个 或 两 个 字 节 。 ChrW 函 数 返 回 包含 Unicode 的 String, 若 在 不 支 持 Unicode 的 平 台 上 , 则 其 功 能 与 Chr 函 数相 同 。注 意 Visual Basic for the Macintosh 不 支 持 Unicode 字 符 串 。 因 此 , 当 n 值在 128 65,535 范 围 内 时 , ChrW(n) 不 能 像 在 Windows环 境 中 那 样
24、 返 回 所 有的 Unicode 字 符 。 相 反 地 , 当 Unicode 的 n 值 大 于 127 时 , ChrW(n) 会 试 图做 一 个 “ 最 好 的 猜 测 ” 。 因 此 , 在 Macintosh 环 境 中 , 不 能 使 用 ChrW 。Command 函 数返 回 命 令 行 的 参 数 部 分 , 该 命 令 行 用 于 装 入 MicrosoftVisualBasic 或 VisualBasic 开 发 的 可 执 行 程 序 。 VisualBasicCommand 函 数 在 MicrosoftOffice 应用 程 序 中 不 可 用 。语 法Com
25、mand说 明当 从 命 令 行 装 入 Visual Basic 时 , /cmd 之 后 的 命 令 行 的 任 何 部 分 作 为 命 令 行的 参 数 传 递 给 程 序 。 下 面 的 示 例 中 , cmdlineargs 代 表 Command 函 数 返 回 的 参 数信 息 。VB /cmd cmdlineargs对 于 使 用 VisualBasic 开 发 并 编 译 为 .exe 文 件 的 应 用 程 序 , Command 返 回 出现 在 命 令 行 中 应 用 程 序 名 之 后 的 任 何 参 数 。 例 如 :MyApp cmdlineargs想 知 道 如
26、 何 在 正 在 使 用 的 应 用 程 序 的 用 户 界 面 中 改 变 命 令 行 参 数 , 请 搜 寻 关 于“ 命 令 行 参 数 ” 的 帮 助 。Cos 函 数返 回 一 个 Double, 指 定 一 个 角 的 余 弦 值 。语 法Cos(number)必 要 的 number 参 数 是 一 Double 或 任 何 有 效 的 数 值 表 达 式 , 表 示 一 个 以 弧 度 为单 位 的 角 。说 明Cos 函 数 的 参 数 为 一 个 角 , 并 返 回 直 角 三 角 形 两 边 的 比 值 。 该 比 值 为 角 的 邻 边 长度 除 以 斜 边 长 度 之
27、 商 。结 果 的 取 值 范 围 在 -1 到 1 之 间 。为 了 将 角 度 转 换 成 弧 度 , 请 将 角 度 乘 以 pi/180。 为 了 将 弧 度 转 换 成 角 度 , 请 将弧 度 乘 以 180/pi。CreateObject 函 数创 建 并 返 回 一 个 对 ActiveX 对 象 的 引 用 。语 法CreateObject(class,servername)CreateObject 函 数 的 语 法 有 如 下 部 分 :部 分 描 述class 必 需 的 ; Variant (String). 要 创 建 的 应 用 程序 名 称 和 类 。serve
28、rname 可 选 的 ; Variant (String). 要 在 其 上 创 建 对象 的 网 络 服 务 器 名 称 。 如 果 servername 是 一个 空 字 符 串 (“), 即 使 用 本 地 机 器 。class 参 数 使 用 appname.objecttype 这 种 语 法 , 包 括 以 下 部 分 :部 分 描 述appname 必 需 的 ; Variant( 字 符 串 ) 。 提 供 该 对 象 的 应 用 程 序 名 。objecttype 必 需 的 ; Variant( 字 符 串 ) 。 待 创 建 对 象 的 类 型 或 类 。说 明每 个
29、支 持 自 动 化 的 应 用 程 序 都 至 少 提 供 一 种 对 象 类 型 。 例 如 , 一 个 字 处 理 应 用 程序 可 能 会 提 供 Application 对 象 , Document 对 象 , 以 及 Toolbar 对 象 。要 创 建 ActiveX 对 象 , 只 需 将 CreateObject 返 回 的 对 象 赋 给 一 个 对 象 变 量 :声 明 一 个 对 象 变 量 来 存 放 该 对 象的 引 用 。 Dim as Object 采 用 后 期 绑 定 方 式 。Dim ExcelSheet As ObjectSet ExcelSheet =
30、CreateObject(“Excel.Sheet“)上 述 代 码 将 启 动 该 应 用 程 序 创 建 该 对 象 , 在 本 例 中 就 是 创 建 一 个 MicrosoftExcel 电 子 数 据 表 。 对 象 创 建 后 , 就 可 以 在 代 码 中 使 用 自 定 义 的 对 象 变 量 来 引 用该 对 象 。 在 下 面 的 示 例 中 , 可 以 使 用 对 象 变 量 ExcelSheet 来 访 问 新 建 对 象 的 属性 和 方 法 , 以 及 访 问 Microsoft Excel 的 其 它 对 象 , 包 括 应 用 程 序 对 象 和 单 元格 集
31、合 。设 置 Application 对 象 使 Excel 可 见ExcelSheet.Application.Visible = True在 表 格 的 第 一 个 单 元 中 写 些 文 本ExcelSheet.Application.Cells(1, 1).Value = “This is column A, row 1“将 该 表 格 保 存 到 C:test.xls 目 录ExcelSheet.SaveAs “C:TEST.XLS“使 用 应 用 程 序 对 象 的 Quit 方 法 关 闭 Excel。ExcelSheet.Application.Quit释 放 该 对 象 变
32、量Set ExcelSheet = Nothing使 用 As Object 子 句 声 明 对 象 变 量 , 可 以 创 建 一 个 能 包 含 任 何 类 型 对 象 引 用 的 变量 。 不 过 , 该 变 量 访 问 对 象 是 后 期 绑 定 的 , 也 就 是 说 , 绑 定 在 程 序 运 行 时 才 进 行 。要 创 建 一 个 使 用 前 期 绑 定 方 式 的 对 象 变 量 , 也 就 是 说 , 在 程 序 编 译 时 就 完 成 绑 定 ,则 对 象 变 量 在 声 明 时 应 指 定 类 ID。 例 如 , 可 以 声 明 并 创 建 下 列 MicrosoftE
33、xcel引 用 :Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorkSheetSet xlApp = CreateObject(“Excel.Application“)Set xlBook = xlApp.Workbooks.AddSet xlSheet = xlBook.Worksheets(1)前 期 绑 定 的 变 量 引 用 可 以 提 供 更 好 的 性 能 , 但 该 变 量 只 能 存 放 声 明 中 所 指 定 的 类的 引 用 。可 以 将 CreateObje
34、ct 函 数 返 回 的 对 象 传 给 一 个 参 数 为 对 象 的 函 数 。 例 如 , 下 面的 代 码 创 建 并 传 递 了 一 个 Excel.Application 对 象 的 引 用 :Call MySub (CreateObject(“Excel.Application“)可 以 在 一 个 远 端 连 网 的 计 算 机 上 创 建 一 个 对 象 , 方 法 是 把 计 算 机 的 名 称 传 递 给CreateObject 的 servername 参 数 。 这 个 名 称 与 共 享 名 称 的 机 器 名 部 份 相 同 :对 于 一 个 共 享 名 称 为
35、“MyServerPublic,“ 的 servername 参 数 是“MyServer“ 。注 意 关 于 使 应 用 程 序 在 远 程 网 络 计 算 机 上 可 见 的 详 细 信 息 , 请 参 阅 COM 文 档(参 阅 Microsoft Developer Network)。 您 可 能 必 须 给 应 用 程 序 添 加 注 册 号 。下 面 的 代 码 返 回 在 一 个 名 为 MyServer 的 远 端 计 算 机 上 运 行 的 Excel 实 例 的 版本 号 :Dim xlApp As ObjectSet xlApp = CreateObject(“Excel
36、.Application“, “MyServer“)Debug.Print xlApp.Version如 果 远 端 服 务 器 不 存 在 或 者 不 可 用 , 则 会 发 生 一 个 运 行 时 错 误 。注 意 当 该 对 象 当 前 没 有 实 例 时 , 应 使 用 CreateObject。 如 果 该 对 象 已 有 实 例 在运 行 , 就 会 启 动 一 个 新 的 实 例 , 并 创 建 一 个 指 定 类 型 的 对 象 。 要 使 用 当 前 实 例 ,或 要 启 动 该 应 用 程 序 并 加 载 一 个 文 件 , 可 以 使 用 GetObject 函 数 。如
37、 果 对 象 已 登 记 为 单 个 实 例 对 象 , 则 不 管 执 行 多 少 次 CreateObject, 都 只 能 创建 该 对 象 的 一 个 实 例 。CurDir 函 数返 回 一 个 Variant (String), 用 来 代 表 当 前 的 路 径 。语 法CurDir(drive)可 选 的 drive 参 数 是 一 个 字 符 串 表 达 式 , 它 指 定 一 个 存 在 的 驱 动 器 。 如 果 没 有指 定 驱 动 器 , 或 drive 是 零 长 度 字 符 串 (“), 则 CurDir 会 返 回 当 前 驱 动 器 的路 径 。 在 Maci
38、ntosh上 , CurDir 忽 略 任 何 指 定 的 drive ,并 只 简 单 地 返 回 当前 驱 动 器 的 路 径 。CVErr 函 数返 回 Error 子 类 型 的 Variant, 其 中 包 含 指 定 的 错 误 号 。语 法CVErr(errornumber)必 要 的 errornumber 参 数 可 以 是 任 何 有 效 的 错 误 号 代 码 。说 明可 以 在 过 程 中 , 使 用 CVErr 函 数 来 创 建 用 户 自 定 义 错 误 。 例 如 , 如 果 创 建 一 个函 数 , 它 可 以 接 受 若 干 个 参 数 , 且 正 常 返
39、回 一 个 字 符 串 , 则 可 以 让 函 数 来 判 断 输入 的 参 数 , 确 认 它 们 是 在 可 接 受 的 范 围 内 。 如 果 不 是 的 话 , 此 函 数 将 不 会 返 回 所要 的 字 符 串 。 在 这 种 情 况 下 , CVErr 可 以 返 回 一 个 错 误 号 , 并 告 知 应 该 采 取 的 行动 。注 意 , Error 的 隐 式 转 换 是 不 允 许 的 , 例 如 , 不 能 直 接 把 CVErr 的 返 回 值 赋 值给 一 个 非 Variant 的 变 量 。 然 而 , 可 以 对 CVErr 的 返 回 值 进 行 显 式 转
40、 换 ( 使 用CInt、 CDbl 等 等 ) , 并 赋 值 给 适 当 的 数 据 类 型 变 量 。Date 函 数返 回 包 含 系 统 日 期 的 Variant (Date)。语 法Date说 明为 了 设 置 系 统 日 期 , 请 使 用 Date 语 句 。DateAdd 函 数返 回 包 含 一 个 日 期 的 Variant (Date), 这 一 日 期 还 加 上 了 一 段 时 间 间 隔 。语 法DateAdd(interval, number, date)DateAdd 函 数 语 法 中 有 下 列 命 名 参 数 :部 分 描 述interval 必 要
41、。 字 符 串 表 达 式 , 是 所 要 加 上 去 的 时 间 间 隔 。number 必 要 。 数 值 表 达 式 , 是 要 加 上 的 时 间 间 隔 的 数 目 。 其 数 值 可 以 为 正 数 ( 得 到未 来 的 日 期 ) , 也 可 以 为 负 数 ( 得 到 过 去 的 日 期 ) 。date 必 要 。 Variant (Date) 或 表 示 日 期 的 文 字 , 这 一 日 期 还 加 上 了 时 间 间 隔 。设 置interval 参 数 具 有 以 下 设 定 值 :设 置 描 述yyyy 年q 季m 月y 一 年 的 日 数d 日w 一 周 的 日 数
42、ww 周h 时n 分 钟s 秒说 明可 以 使 用 DateAdd 函 数 对 日 期 加 上 或 减 去 指 定 的 时 间 间 隔 。 例 如 , 可 以 用DateAdd 来 计 算 距 今 天 为 三 十 天 的 日 期 ; 或 者 计 算 距 现 在 为 45 分 钟 的 时 间 。为 了 对 date 加 上 “ 日 ” , 可 以 使 用 “ 一 年 的 日 数 ” (“ y” ), “ 日 ” (” d” )或 “ 一 周 的 日 数 ” (” w” )。DateAdd 函 数 将 不 返 回 有 效 日 期 。 在 以 下 实 例 中 将 1 月 31 日 加 上 一 个 月
43、 :DateAdd(m, 1, 31-Jan-95)上 例 中 , DateAdd 返 回 1995 年 2 月 28 日 , 而 不 是 1995 年 2 月 31 日 。 如果 date 是 1996 年 1 月 31 日 , 则 由 于 1996 年 是 闰 年 , 返 回 值 是 1996 年 2月 29 日 。如 果 计 算 的 日 期 超 前 100 年 ( 减 去 的 年 度 超 过 date 中 的 年 份 ) , 就 会 导 致 错误 发 生 。如 果 number 不 是 一 个 Long 值 , 则 在 计 算 时 取 最 接 近 的 整 数 值 来 计 算 。注 意 D
44、ateAdd 返 回 值 的 格 式 由 Control Panel设 置 决 定 , 而 不 是 由 传 递到 date 参 数 的 格 式 决 定 。DateDiff 函 数返 回 Variant (Long) 的 值 , 表 示 两 个 指 定 日 期 间 的 时 间 间 隔 数 目 。语 法DateDiff(interval, date1, date2, firstdayofweek, firstweekofyear)DateDiff 函 数 语 法 中 有 下 列 命 名 参 数 :部 分 描 述interval 必 要 。 字 符 串 表 达 式 , 表 示 用 来 计 算 dat
45、e1 和 date2 的 时 间 差 的 时间 间 隔Date1date2 必 要 ; Variant (Date)。 计 算 中 要 用 到 的 两 个 日 期 。Firstdayofweek 可 选 。 指 定 一 个 星 期 的 第 一 天 的 常 数 。 如 果 未 予 指 定 , 则 以 星 期 日为 第 一 天 。firstweekofyear 可 选 。 指 定 一 年 的 第 一 周 的 常 数 。 如 果 未 予 指 定 , 则 以 包 含 1 月 1日 的 星 期 为 第 一 周 。设 置interval 参 数 的 设 定 值 如 下 :设 置 描 述yyyy 年q 季m
46、 月y 一 年 的 日 数d 日w 一 周 的 日 数ww 周h 时n 分 钟s 秒firstdayofweek 参 数 的 设 定 值 如 下 :常 数 值 描 述vbUseSystem 0 使 用 NLS API 设 置 。vbSunday 1 星 期 日 ( 缺 省 值 )vbMonday 2 星 期 一vbTuesday 3 星 期 二vbWednesday 4 星 期 三vbThursday 5 星 期 四vbFriday 6 星 期 五vbSaturday 7 星 期 六常 数 值 描 述vbUseSystem 0 用 NLSAPI 设 置 。vbFirstJan1 1 从 包 含
47、 1 月 1 日 的 星 期 开 始 ( 缺 省 值 ) 。vbFirstFourDays 2 从 第 一 个 其 大 半 个 星 期 在 新 的 一 年 的 一 周 开 始 。vbFirstFullWeek 3 从 第 一 个 无 跨 年 度 的 星 期 开 始 。说 明DateDiff 函 数 可 用 来 决 定 两 个 日 期 之 间 所 指 定 的 时 间 间 隔 数 目 。 例 如 , 可 以 使用 DateDiff 来 计 算 两 个 日 期 之 间 相 隔 几 日 , 或 计 算 从 今 天 起 到 年 底 还 有 多 少 个星 期 。为 了 计 算 date1 与 date2
48、相 差 的 日 数 , 可 以 使 用 “ 一 年 的 日 数 ” (y) 或“ 日 ” (d)。 当 interval 是 “ 一 周 的 日 数 ” (w) 时 , DateDiff 返 回 两 日 期 间 的周 数 。 如 果 date1 是 星 期 一 , DateDiff 计 算 到 date2 为 止 的 星 期 一 的 个 数 。这 个 数 包 含 date2 但 不 包 含 date1。 不 过 , 如 果 interval 是 “ 周 ” (ww), 则DateDiff 函 数 返 回 两 日 期 间 的 “ 日 历 周 ” 数 。 由 计 算 date1 与 date2 之
49、 间 星期 日 的 个 数 而 得 。 如 果 date2 刚 好 是 星 期 日 , 则 date2 也 会 被 加 进 DateDiff的 计 数 结 果 中 ; 但 不 论 date1 是 否 为 星 期 日 , 都 不 将 它 算 进 去 。如 果 date1 比 date2 来 得 晚 , 则 DateDiff 函 数 的 返 回 值 为 负 数 。firstdayofweek 参 数 会 影 响 使 用 时 间 间 隔 符 号 “ W” 或 “ WW” 计 算 的 结 果 。如 果 date1 或 date2 是 日 期 文 字 , 则 指 定 的 年 份 成 为 该 日 期 的 固 定 部 分 。 但 是 ,如 果 date1 或 date2 用 双 引 号 (“ “) 括 起 来 , 且 年 份 略 而 不 提 , 则 在 每 次 计算 表 达 式 date1 或 date2 时 , 当 前 年 份 都 会 插 入 到 代 码 之 中 。 这 样 就 可 以 书 写适 用 于 不 同 年 份 的 程 序 代 码 。在 计 算 12 月 31 日 和 来 年 的 1 月 1 日 的 年 份 差 时 , DateDiff 返 回 1 表 示 相差 一 个 年 份 , 虽 然 实 际 上 只 相 差