本人对VB不熟悉,求教一个小问题。
由于split函数无法在EXCEL97中使用,求一个类似split的函数。输入两个参数
1,一个字符串
2,一个判断符号(比如”,”” ;”之类的分隔符),返回一个字符串数组存放分割好的字符串。
希望用最基本的函数编写。(我也不懂哪些是基本函数只求能在EXCEL97下运行)Public Function Split(ByVal compression As String, ByVal compare As String) As String()
//End Function
由于split函数无法在EXCEL97中使用,求一个类似split的函数。输入两个参数
1,一个字符串
2,一个判断符号(比如”,”” ;”之类的分隔符),返回一个字符串数组存放分割好的字符串。
希望用最基本的函数编写。(我也不懂哪些是基本函数只求能在EXCEL97下运行)Public Function Split(ByVal compression As String, ByVal compare As String) As String()
//End Function
Dim a As String
Dim b() As Stringa = "1,2,3,4,5"
b = Split(a, ",")End Sub
描述返回一个下标从零开始的一维数组,它包含指定数目的子字符串。语法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。基于您的数据库的信息执行比较。
我不是要弄明白怎么用,是要手工编一个类似的函数,因为split在低版本中无法运行
一边吃饭一边完成以下代码,用到left right instr redim preserve 不知道这些在你的版本里面能不能用Option ExplicitPrivate Sub Command1_Click()
Dim a As String
Dim b() As String
a = "1,2,3,4,5"
mySplit a, ",", b
Dim i As Integer
For i = 0 To 4
Debug.Print b(i)
Next
End SubPrivate Sub mySplit(ByVal strInput As String, ByVal strCompare As String, aryOut() As String) Dim intCount As Integer
Dim intPoint As Integer
ReDim aryOut(0)
intCount = 1
intPoint = 1
intPoint = InStr(1, strInput, strCompare)
If intPoint = 0 Then
aryOut(0) = strInput
Exit Sub
Else
aryOut(0) = Left(strInput, intPoint - 1)
strInput = Right(strInput, Len(strInput) - intPoint)
End If
Do
DoEvents
intPoint = InStr(1, strInput, strCompare)
ReDim Preserve aryOut(UBound(aryOut) + 1)
intCount = intCount + 1
If intPoint = 0 Then
aryOut(intCount - 1) = strInput
Exit Do
End If
aryOut(intCount - 1) = Left(strInput, intPoint - 1)
strInput = Right(strInput, Len(strInput) - intPoint)
Loop
End Sub