系列数字提取函数
时 间:2011-03-04 00:00:00
作 者:羽扇子君 ID:15117 城市:铁岭
摘 要:类似于Office打印中的页范围提取
如:"20405,7,1-3,20304-20306"分析结果为:20405,20407,20401,20402,20403,20304,20305,20306
正 文:
Function theNumsAnalysis(TempString As String) As Variant '数字分析
'作用: 分析 TempString 的内容,以方便处理有关系或连续的数字 (类似于Office打印中的页范围)
'参数: TempString 以“,”、“-”分隔的字符串.如:"20405,7,1-3,20304-20306"分析结果为:20405,20407,20401,20402,20403,20304,20305,20306
'返回值:- Null 没有内容时,返回null
' - 下标从0开始的1维数组
Dim theTemp As Variant, theTemp1 As Variant, theTemp2 As Variant, varitm As Variant, i As Integer, j As Long, FirstLen As Byte
Dim Temp1 As String, Temp2 As String, MinusLen As Byte
If Isnull(TempString) Then 'Null值情况
theNumsAnalysis = Null
Exit Function
End If
theTemp = Split(TempString, ",")
If InStr(theTemp(0), "-") > 0 Then '如果包含"-"
theTemp1 = Trim(Left(theTemp(0), InStr(theTemp(0), "-") - 1)) '取出"-"前面的内容
Else
theTemp1 = theTemp(0)
End If
FirstLen = Len(theTemp1)
For Each varitm In theTemp
If InStr(varitm, "-") > 0 Then
MinusLen = InStr(varitm, "-") '得到"-"位置
Temp2 = Trim(Right(varitm, Len(varitm) - MinusLen))
Temp1 = Right(Trim(Left(varitm, MinusLen - 1)), Len(Temp2))
For j = Val(Temp1) To Val(Temp2)
If i = 0 Then
theTemp2 = Left(theTemp1, FirstLen - Len(Temp2)) & j
Else
theTemp2 = theTemp2 & "," & Left(theTemp1, Abs(FirstLen - Len(Temp2))) & j
End If
i = i + 1
Next j
Else
If i = 0 Then
theTemp2 = Left(theTemp1, Len(theTemp1) - Len(varitm)) & varitm
Else
theTemp2 = theTemp2 & "," & Left(theTemp1, Len(theTemp1) - Len(varitm)) & varitm
End If
End If
i = i + 1
Next varitm
theNumsAnalysis = Split(theTemp2, ",")
End Function
调用试例:
Function a()
Dim theTemp1 As Variant
theTemp1 = theNumsAnalysis("20405,7,1-3,20304-20306")
MsgBox Join(theTemp1, "、")
End Function
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 根据变化的日期来自动编号的示例...(06.20)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)

学习心得
最新文章
- 根据变化的日期来自动编号的示例;根...(06.20)
- Access快速开发平台--Acc...(06.16)
- 【Access高效办公】按日期区间...(06.12)
- Access快速开发平台--生成复...(06.07)
- 仓库管理实战课程(25)-导航菜单...(06.06)
- 仓库管理实战课程(24)-库存月结...(06.05)
- 分享一个简单的X氏家谱小示例(06.04)
- 仓库管理实战课程(23)-先入先出(06.02)
- 仓库管理实战课程(22)-代理商库...(05.30)
- 仓库管理实战课程(21)-安全库存...(05.28)