已知字符串: a23b40a368b588b398b2
经过处理,输出为如下:
             a23
             b40
             a368
             b588
             b398
             b2可以用一个动态数组保存这些数据。问题是,如何进行字符串处理,以a或b做为标志,将字符串分离成几个子串,谢谢,一次性解决者,50分送他。

解决方案 »

  1.   

    Private Sub Command1_Click()
      Dim n As Integer
      Dim Flag As Boolean
      Dim a() As String
      Dim Str As String
      Dim i As Integer
      Dim x As String
      Flag = False
      x = Text1.Text
      n = -1
      For i = 1 To Len(x)
        If Mid(x, i, 1) = "a" Or Mid(x, i, 1) = "b" Then
           If Flag = True Then
              ReDim Preserve a(n + 1) As String
              a(n + 1) = Str
              Str = ""
              Flag = False
              n = n + 1
              Str = Str & Mid(x, i, 1)
           Else
             Str = Str & Mid(x, i, 1)
             
           End If
        Else
          Flag = True
          Str = Str & Mid(x, i, 1)
          If i = Len(x) Then
             ReDim Preserve a(n + 1) As String
             a(n + 1) = Str
          End If
        End If
      Next
     Debug.Print a(0)
     Debug.Print a(1)
     Debug.Print a(2)
     
        
    End Sub
      

  2.   

    Private Sub Command1_Click()
        Dim s As String
        Dim Temp As String
        Dim a() As String
        Dim i As Long
        Dim Index As Long
        
        s = "a23b40a368b588b398b2"
        
        Index = -1
        
        For i = 1 To Len(s)
            Temp = Mid(s, i, 1)
            If Asc(Temp) < 48 Or Asc(Temp) > 57 Then
                Index = Index + 1
                ReDim Preserve a(Index)
                a(Index) = Temp
            Else
                a(Index) = a(Index) & Temp
            End If
        Next i
    End Sub
      

  3.   

    我怎么就那么麻烦呢?
     还是 weiweiplay(虚幻) 厉害,呵呵
     没有想到简便方法
      

  4.   

    '自定义函数作用:提取当前单元格中的数字
    Dim i, j As Integer
    Dim mylen As IntegerDim mystr As Stringmylen = Len(rng)For i = 1 To mylen   mystr = Mid(rng, i, 1)   If Asc(mystr) >= 48 And Asc(mystr) <= 57 Then
           getnumber = getnumber & mystr
       Else
           sChr = mystr
           j = j + 1
       End If
    If i = mylen Then Exit Function
       mystr = Mid(rng, i + 1, 1)
       If Asc(mystr) >= 48 And Asc(mystr) <= 57 Then
       Else
          ReDim Preserve Arr(j)
          Arr(j) = sChr & getnumber
          getnumber = ""
       End If
    Next i
      

  5.   

    zou19820704(国际海员) :
    代码是长了点,但一次性解决了我的问题。给40
    weiweiplay(虚幻):
    代码是简单了点,但还需要继续完善,才能达到我所要的结果。给8
    HungryBoy(饥饿的男孩):
    代码也是简单了点,但编译不通过,我本人又没有时间替你修改代码。给2重在参与,本来一次性解决的要给50分的。