目的是把以空格为分隔的数取出来Dim s, s1, s2 As String
Dim i, j, k, l As Integer
Dim  As String
 = " "
s = "12 34 56 1 567 2"
For i = 1 To Len(s)
 j = InStr(i, s, )
 If j > 0 Then
  s1 = Mid(s, 1, j)  '每次取出的数放在这里,依次是12 然后下次是34,类推
  Debug.Print s1
  s = Mid(s, j + 1, Len(s) - j + 1)
  i = 0
 End If
 If j = 0 Then '最后一项时,找不到" "的分隔符
 s1 = s
 i = Len(s)
 End If
Next i
怎么来跳不出来啊

解决方案 »

  1.   

    到最后s='2' ; j=0
     再执行下面的代码,一直偱环.又没有退出偱环的代码,当然死偱环了.
     If j = 0 Then '最后一项时,找不到" "的分隔符
       s1 = s
       i = Len(s)
     End If 改一下:
     If j = 0 Then '最后一项时,找不到" "的分隔符
       s1 = s
       i = Len(s)
       Exit For
     End If
      

  2.   

    Dim sTXT As String
    Dim newtxt
    Dim I As Long
    sTXT = "12 34 56 1 567 2"
    If Right(sTXT, 1) <> " " Then sTXT = sTXT & " "
    Do
        I = InStr(sTXT, " ")
        If I = 0 Then Exit Do
        newtxt = Left(sTXT, I - 1)
        sTXT = Replace(sTXT, newtxt & " ", "")
        MsgBox newtxt
    Loop
      

  3.   

    干嘛不用splitDim lngI As Long
    Dim s As String
    Dim s1() As Strings = "12 34 56 1 567 2"
    s1 = Split(s)
    For lngI = 0 To UBound(s1)
        MsgBox s1(lngI)
    Next
      

  4.   

    同意,用split好
    转成数组