如上

解决方案 »

  1.   

    Private Function GetPiece(ByVal psExpr As String) As String()
        Dim lCol As Long, lRow As Long
        
        Dim i As Long
        Dim nLen As Long
        Dim lStart As Long
        Dim lLength  As Long
        Dim ch As String
        Dim lSplit As Long
            
        Dim Result() As String
            
        ReDim Result(0)
        nLen = Len(psExpr)
        lSplit = 1
        
        Do While lSplit < nLen
        
           For i = lSplit To nLen
               ch = Mid(psExpr, i, 1)
               
               If ch = "[" Then
                  lStart = i
                  lLength = 0
               ElseIf ch = "]" Then
                  lSplit = lStart + lLength + 1
                  lSplit = lSplit + 1
                  
                  ch = Mid(psExpr, lStart + 1, lLength)
                  ReDim Preserve Result(UBound(Result) + 1)
                  Result(UBound(Result)) = ch
                  
                  Exit For
               Else
                 lLength = lLength + 1
                 lSplit = lSplit + 1
               End If
            Next
        Loop
            
        Result(0) = UBound(Result)
        GetPiece = Result
        
    End Function