Function MakePartNumber(strDrawing As String)
    Dim Str1() As String, str2 As String
    Dim i As Integer
    Str1 = Split(strDrawing, " ")
    For i = 0 To UBound(Str1)
        If j < Len(Str1(i)) Then
            j = Len(Str1(i))
            str2 = Str1(i): k = i
        End If
    Next
MakePartNumber = str2
End Function这段代码是把一个字符串按空格分成若干个部分,取其中最大的字符串。现在我想把这个程序改成可同时按空格和-(横线)分割,请问该怎么写?我写了都没成功!请赐教!

解决方案 »

  1.   

    Function MakePartNumber(strDrawing As String,optional strSplit as String=" ")
        Dim Str1() As String, str2 As String
        Dim i As Integer
        Str1 = Split(strDrawing, strSplit)
        For i = 0 To UBound(Str1)
            If j < Len(Str1(i)) Then
                j = Len(Str1(i))
                str2 = Str1(i): k = i
            End If
        Next
    MakePartNumber = str2
    End Function
    通過傳遞分隔字串實現
      

  2.   

    Function MakePartNumber(strDrawing As String)
        Dim Str1() As String, str2 As String
        Dim i As Integer    '把横线替换成空格
        strDrawing=replace(strDrawing,"-"," ")    Str1 = Split(strDrawing, " ")
        For i = 0 To UBound(Str1)
            If j < Len(Str1(i)) Then
                j = Len(Str1(i))
                str2 = Str1(i): k = i
            End If
        Next
    MakePartNumber = str2
    End Function
      

  3.   

    什么两种方法都可以? haipingma(今天你过得快乐吗?) ,你改在哪里的?除了参数变了下,好象没改什么啊。我的目的是遇到空格或-(横线)就分割,你这样可以吗?好象没用吧
      

  4.   

    xinliangyu(yxl) 正解
    先用Replace取代'_'後再分割即可
      

  5.   

    现在我想把这个程序改成可同时按空格和-(横线)分割
    ----------------------------------------------
    1.如果你得意思是說一个字符串中既有" " 也有"-",而你都要分隔出來,可以用replace函數處理成一致
    2.如果你得意思是有時要按" "分隔,有時要按照"-"分隔,那麼就用參數得形式,
    這樣不會吧本來包含"-"或" "得字串給替代了,比如
    "123-dc er34 fr56 fg6543"這個你按照1方法分隔出來結果應該是:
    123,dc,er34,fr56,fg6543
    按照2方法分出來得結果是
    123-dc,er34,fr56,fg6543
    不知道樓主需要哪一種結果?