本人对VB不熟悉,求教一个小问题。
由于split函数无法在EXCEL97中使用,求一个类似split的函数。输入两个参数
1,一个字符串 
2,一个判断符号(比如”,”” ;”之类的分隔符),返回一个字符串数组存放分割好的字符串。
希望用最基本的函数编写。(我也不懂哪些是基本函数只求能在EXCEL97下运行)Public Function Split(ByVal compression As String, ByVal compare As String) As String()
//End Function 

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim a As String
    Dim b() As Stringa = "1,2,3,4,5"
    b = Split(a, ",")End Sub
      

  2.   

    Split函数
          描述返回一个下标从零开始的一维数组,它包含指定数目的子字符串。语法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。基于您的数据库的信息执行比较。 
      

  3.   

    to chewinggum(口香糖·向星星前进) 
    我不是要弄明白怎么用,是要手工编一个类似的函数,因为split在低版本中无法运行
      

  4.   

    哦,了解!
    一边吃饭一边完成以下代码,用到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