Partition 函数

更新:2007 年 11 月

返回一个字符串,该字符串表示包含某个数字的计算范围。

Public Function Partition( _
   ByVal Number As Long, _ 
   ByVal Start As Long, _ 
   ByVal Stop As Long, _ 
   ByVal Interval As Long _
) As String

参数

  • Number
    必需。Long。要在一个计算范围中找到的整数。

  • Start
    必需。Long。用于指示计算范围组的开始位置的整数。Start 不能小于 0。

  • Stop
    必需。Long。用于指示计算范围组的结束位置的整数。Stop 不能小于或等于 Start。

  • Interval
    必需。Long。用于指示在 Start 和 Stop 之间计算的每个范围的大小的整数。Interval 不能小于 1。

异常

异常类型

错误号

条件

ArgumentException

5

Start 小于 0、Stop 小于等于 Start 或 Interval 小于 1。

如果正在升级使用非结构化错误处理方式的 Visual Basic 6.0 应用程序,请参见“错误号”一列。(您可以根据 Number 属性(Err 对象) 比较错误号。)然而,如果可能,应当考虑用 Visual Basic 的结构化异常处理概述 替换这种错误控制。

备注

Partition 函数计算一组数值范围,每个范围包含由 Interval 指定数目的值。第一个范围以 Start 开始,最后一个范围以 Stop 结束。然后 Partition 函数标识哪个范围包含 Number,并返回一个描述该范围的字符串。该范围在字符串中表示为“lowervalue:uppervalue”,其中范围的低端 (lowervalue) 与高端 (uppervalue) 之间用冒号 (:) 分隔。

如果必要,Partition 函数可在 lowervalue 和 uppervalue 之前插入前导空格,以使此二者与该值的字符串表示形式具有相同的字符个数 (Stop + 1)。这可以确保,当利用若干 Number 值使用 Partition 函数的输出时,在后面的任何排序操作中将能够正确地处理结果文本。

下表显示使用三组 Start、Stop 和 Interval 计算的范围的一些示例字符串。“第一个范围”列和“最后一个范围”列显示在给定 Start 和 Stop 值时可能的最低和最高范围。“第一个范围前”和“最后一个范围后”列分别显示为 Number 值返回的小于 Start 和大于 Stop 的字符串。

Start

Stop

Interval

第一个范围前

第一个范围

最后一个范围

最后一个范围后

0

99

5

"   : -1"

"  0:  4"

" 95: 99"

"100:   "

20

199

10

"   : 19"

" 20: 29"

"190:199"

"200:   "

100

1010

20

"    : 99"

" 100: 119"

"1000:1010"

"1011:    "

在前面的表中,第三行显示当 Start 和 Stop 定义了一组不能被 Interval 均分的数时的结果。最后一个范围以 Stop 结束,其长度仅有 11 个数,尽管此时 Interval 为 20。

如果 Interval 为 1,则不管 Start 和 Stop 参数如何,范围都是“Number:Number”。例如,如果 Number 是 267,Stop 是 1000,Interval 是 1,则 Partition 返回“267: 267”。

Partition 在构造数据库查询时非常有用。可以创建一个 SELECT 查询以显示有多少份订单出现在各种值范围内(例如,订单的发票值为从 1 到 1000、从 1001 到 2000,等等)。

示例

下面的示例设置从 1950 年到 2049 年之间以十年计的一系列范围。它在适当范围内查找 year 的值,并返回显示范围的 String 值。例如,如果 year 的值为 1984,Partition 将返回“1980:1989”。

Dim year As Long = 1984
' Assume the value of year is provided by data or by user input.
Dim decade As String
decade = Partition(year, 1950, 2049, 10)
MsgBox("Year " & CStr(year) & " is in decade " & decade & ".")

要求

命名空间:Microsoft.VisualBasic

**模块:**Interaction

**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)

请参见

参考

Visual Basic 运行时库成员

Interaction 模块 (Visual Basic)