返回一个下标从零开始的一维数组,它包含指定数目的子字符串。语法Split(expression[, delimiter[, count[, compare]]])Split函数语法有如下几部分:部分 描述
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。
设置值compare参数的设置值如下:常数 值 描述
vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。
Join函数
描述返回一个字符串,该字符串是通过连接某个数组中的多个子字符串而创建的。语法Join(list[, delimiter])Join函数语法有如下几部分:部分 描述
list 必需的。包含被连接子字符串的一维数组。
delimiter 可选的。在返回字符串中用于分隔子字符串的字符。如果忽略该项,则使用空格(" ")来分隔子字符串。如果delimiter是零长度字符串(""),则列表中的所有项目都连接在一起,中间没有分隔符。
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。
设置值compare参数的设置值如下:常数 值 描述
vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。
Join函数
描述返回一个字符串,该字符串是通过连接某个数组中的多个子字符串而创建的。语法Join(list[, delimiter])Join函数语法有如下几部分:部分 描述
list 必需的。包含被连接子字符串的一维数组。
delimiter 可选的。在返回字符串中用于分隔子字符串的字符。如果忽略该项,则使用空格(" ")来分隔子字符串。如果delimiter是零长度字符串(""),则列表中的所有项目都连接在一起,中间没有分隔符。
解决方案 »
- 怎么把access数据库的自动编号类型转换成字串
- 请问如何将一个字段值进行想加统计,并将结果帮定在一个文本框里。
- 为什么不能显示数据
- 初学vb,请教一些问题,谢谢!
- 不绑定Adodc,Listview和MshFlexGrid怎么实现分页?
- 500分求一个查询,我要用水晶报表打出来,在线等!!!
- 我的程序关闭后在,所有窗口都关闭了,但“Windows资源管理器中”还在运行,如何查错误?
- 有什么好的延时的方法吗?
- vb6 事物处理的怪异问题,请高手解答,谢谢
- datagrid控件问题
- 谁帮我测试一个BO程序,我看书,用VB写的,不会对你的的电脑有损坏。愿者请留夏E-MAIL
- 怎样调用外部的EXE文件
解答: 先 Split,再 Join,可编写如下函数:
Public Function InsertIntoString(StringX As String, i As Long, StringY As String, Optional Delimiter As String = " ") As String
'StringX 为原字符串,i 为第 i 个 ";",'StringY 为要插入的字符串,'Delimiter 为分隔符
Dim a() As String
a = VBA.Split(VBA.Trim(StringX), Delimiter)
If i < LBound(a) + 1 Then
a(LBound(a)) = StringY & Delimiter & a(LBound(a)) '插在最前
ElseIf i > UBound(a) + 1 Then
a(UBound(a)) = a(UBound(a)) & Delimiter & StringY '插在最后
Else
a(LBound(a) + i - 1) = a(LBound(a) + i - 1) & Delimiter & StringY '插在中间
End If
InsertIntoString = VBA.Join(a, Delimiter)
End Function
Private Sub Command1_Click() '测试程序
VBA.MsgBox InsertIntoString("name;age;addr;sex", 0, "school", ";") '插在最前
VBA.MsgBox InsertIntoString("name;age;addr;sex", 1, "school", ";") '插在中间
VBA.MsgBox InsertIntoString("name;age;addr;sex", 9, "school", ";") '插在最后
End Sub
A(0)="a"
A(1)="b"
A(2)="c"Debug.print Join(A(2),"/") '结果: a/b/c
'用 符号/ 连接 数组
==============================================
Dim strTest As String
Dim A
strTest = "a/b/c"
A = Split (strTest,"/")print A(0)
print A(1)
print A(2) '结果 :c