haode(好的):
只要可以完成这个功能就行,写出来吧,谢谢!!!!!

解决方案 »

  1.   

    dim v as variant
    dim str as string
    "1999-2002,1,11,2001-2002,10,31"
    str=replace(str,"-",",")
    a=split(str,",")
    debug.print a(0),a(1)'自己看看结果吧
      

  2.   

    '写错了一个地方
    dim v as variant
    dim str as string
    str="1999-2002,1,11,2001-2002,10,31"
    str=replace(str,"-",",")
    a=split(str,",")
    debug.print a(0),a(1)
      

  3.   

    Public Sub getChar(str As String)
    Dim a() As String
    Dim i As Long
    Do While InStr(str, "-")
      Mid(str, InStr(str, "-"), 1) = ","
    Loop
    a = Split(str)
    For i = 0 To UBound(a)
      Debug.Print a(i)
    Next i
    End Sub
      

  4.   

    一个效率不算高的办法,但是程序简单,呵呵Dim sRaw as string
    Dim sBuffer as string
    Dim a()  as string 
    sRaw="1,23,4-23,11,221-12"
    sbuffer=replace(sRaw,"-",",")
    a=split(sBuffer,",")
      

  5.   

    如果其中出现的仅仅是数值就好办!!
    Private Sub Form_Click()
    s = InputBox("string", "string")
    Print s
    s = "-" + Replace(s, ",", "-")
    t = -(Val(s))
    Print t
    Do Until t = 0
        s = Mid(s, Len(CStr(-t)) + 1)
        t = -(Val(s))
        Print t, s
    Loop
    End Sub
      

  6.   

    import java.io.*;public class getstring{
    public static void main(String args[]){
    String a="2002-15,37-890979";
    String[] b=new String[500];
    int c=0;
    int d=1;
    int f=0;
    try{
    for (c=0;c<a.length();c++,d++){
    if((a.substring(c,d).equals("-"))||(a.substring(c,d).equals(","))){
    f++;
    continue;
    }else{
    b[f]=b[f]+a.substring(c,d);
    }
    }
    }catch(Exception e){
    }
    System.out.println(b[1]);
    }
    }
      

  7.   

    谢谢cacoda(睚眦必报) :
    "1999-2002,1,11,2001-2002,10,31"
    中我可以取到1999和2002。但是有一点我可能没有说明白:
    比如:
    "1999-2002,1,11,2001,1,1,2000-2002,10,31"
    那么取得1999和2002 后我要处理的是1999到2002之间的所有数字,
    你那样出来后,我只能处理1999和2002而已了。
      

  8.   

    谢谢各位!!!不过用replace函数后就没办法区分"1999-2002"和"1999,2002"了也就是说1999-2002表示的是1999,2000,2001,2002
    我要处理的不懂的地方就是这里。向各位道谢,自己也没有说明白,多多包涵!!!!
      

  9.   

    cacoda(睚眦必报) ,nik_Amis(Azrael) ,ddt555() :可否帮帮我!!!谢谢。
      

  10.   


      Dim str As String
      Dim v() As String
      Dim i As Integer
      
      str = "2000-2001,1-5,2001-2002,5-10"
      str = Replace(str, "-", ",")
      v = Split(str, ",")
      
      For i = 0 To UBound(v)
        Debug.Print v(i)
      Next i
      

  11.   

    Private Sub Form_Load()
        Dim sRaw As String
        Dim sBuffer As String
        Dim a()  As String
        Dim n As Long
        Dim s As String
        sRaw = "1999-2003,11,1,2001-2002,8,23"
    '    sBuffer = Replace(sRaw, "-", ",")
        a = Split(sRaw, ",")
        sBuffer = ""
        For n = 0 To UBound(a)
            If sBuffer = "" Then
                s = ""
            Else
                s = ","
            End If
            If InStr(1, a(n), "-") Then
                sBuffer = sBuffer & s & GG(a(n))
            Else
                sBuffer = sBuffer & s & a(n)
            End If
        Next
    End SubPrivate Function GG(ByVal sRaw As String) As String
        Dim n As Long
        Dim a() As String
        Dim sBuffer As String
        
        a = Split(sRaw, "-")
        For n = a(0) To a(1)
            If sBuffer = "" Then
                sBuffer = n
            Else
                sBuffer = sBuffer & "," & n
            End If
        Next
        GG = sBuffer
    End Function
      

  12.   

    谢谢nik_Amis(Azrael) :
    http://expert.csdn.net/Expert/topic/1136/1136131.xml?temp=.1800653
    这里的分也是你的。
      

  13.   

    nik_Amis(Azrael) 请进http://expert.csdn.net/Expert/topic/1136/1136131.xml?temp=.1800653
    等待结贴。
      

  14.   

    运行看看,可以的,我已经测试过了!Option ExplicitPrivate Sub Command1_Click()
      Dim str As String
      
      str = "2000-2002,1,5,2001-2005,5,10"
      
      MsgBox ConvertString(str)
    End SubPrivate Function ConvertString(ByVal strSource As String) As String
      Dim str As String
      Dim i As Integer
      
      Dim iValue1 As Integer
      Dim iValue2 As Integer
      
      Dim iPos As Integer
      Dim strTmp1 As String
      Dim strTmp2 As String
      
      str = strSource
      
      iPos = InStr(str, "-")
      
      Do Until iPos <= 0
        strTmp1 = ""
        strTmp2 = ""
        strTmp1 = Mid(str, iPos - 4, 4) & "-" & Mid(str, iPos + 1, 4)
        
        iValue1 = CInt(Mid(str, iPos - 4, 4))
        iValue2 = CInt(Mid(str, iPos + 1, 4))
        
        For i = iValue1 To iValue2
          strTmp2 = strTmp2 & CStr(i) & ","
        Next i
        strTmp2 = Left(strTmp2, Len(strTmp2) - 1)
        
        str = Replace(str, strTmp1, strTmp2)
        
        iPos = InStr(iPos, str, "-")
      Loop  ConvertString = str
    End Function