我贴上我的代码 你自己改改吧
Result = Clipboard.GetText
z = 0
s = 0
Row_l = Split(Result, vbCrLf)For i = 0 To UBound(Row_l)
    Col_L = Split(Row_l(i), Chr(9))
    For t = 0 To UBound(Col_L)
        If z = 0 Then
            ReDim Grid1(UBound(Row_l), UBound(Col_L))
            z = 1
        End If
        Grid1(i, t) = Col_L(t)
       ' Debug.Print Col_L(t),
    Next
   ' Debug.Print
Next

解决方案 »

  1.   

    高手,按照你的方法改了如下,但是输入结果好像不对啊,比如说我用debug.print Grid1(0, 0)但是输出结果不是EDFS01a001代码如下:
    z = 0
    s = 0
    Row_l = Split(st, "|")For i = 0 To UBound(Row_l)
        Col_L = Split(Row_l(i), Chr(9))
        For t = 0 To UBound(Col_L)
            If z = 0 Then
                ReDim Grid1(UBound(Row_l), UBound(Col_L))
                z = 1
            End If
            Grid1(i, t) = Col_L(t)
          Debug.Print Grid1(0, 0)
        Next
     
    Next输出结果:
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a002
    EDFS01a002
    EDFS01a002
    EDFS01a002
    EDFS01a002
    EDFS01a002
    EDFS01a002
    EDFS01a002
    EDFS01a002
    EDFS01a003
    EDFS01a003
    EDFS01a003
    EDFS01a003
    EDFS01a003
    EDFS01a003
    EDFS01a003
    EDFS01a003
    EDFS01a003
    EDFS01a004
    EDFS01a004
    EDFS01a004
    EDFS01a004
    EDFS01a004
    EDFS01a004
    EDFS01a004
    EDFS01a004
    EDFS01a004
    EDFS01a005
    EDFS01a005
    EDFS01a005
    EDFS01a005
    EDFS01a005
    EDFS01a005
    EDFS01a005
    EDFS01a005
    EDFS01a005
    EDFS01a006
    EDFS01a006
    EDFS01a006
    EDFS01a006
    EDFS01a006
    EDFS01a006
    EDFS01a006
    EDFS01a006
      

  2.   


    Private Sub Command1_Click()
    Dim z, s, i, Grid1, Row_l, Col_L, stz = 0
    s = 0
    st = Clipboard.GetText
    Row_l = Split(st, "|")For i = 0 To UBound(Row_l)
        Col_L = Split(Row_l(i), Chr(9))
        For t = 0 To UBound(Col_L)
            If z = 0 Then
                ReDim Grid1(UBound(Row_l), UBound(Col_L))
                z = 1
            End If
            Grid1(i, t) = Col_L(t)
          Debug.Print Grid1(0, 0)
        NextNext
    End Sub
    我这里的输出结构是 
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
    EDFS01a001
      

  3.   

    高手,我只想输出Grid1(0, 0)=EDFS01a001;Grid1(1, 0)=EDFS01a002 这样一个元素对应一个参数。这样应该怎么弄
      

  4.   

    我该改成Debug.Print Grid1(1, 1)后,输出提示下标越界。这是怎么回事,我的初衷是输出(EDFS01a002)佛山市禅城区金网通电讯经营部
      

  5.   

    用我5楼的代码 
    把 Debug.Print  语句放在循环外面
      

  6.   

    代码如下
    Sub test1()Dim st As String
    Dim st1, i As Integer, n As Integer
    Dim k As Integer
    Dim p As StringOpen ThisWorkbook.Path & "\a.txt" For Input As #1Do Until EOF(1)
    Line Input #1, st
    z = 0
    s = 0Row_l = Split(st, vbCrLf)For i = 0 To UBound(Row_l)
        Col_L = Split(Row_l(i), "|")
        For t = 0 To UBound(Col_L)
            If z = 0 Then
                ReDim Grid1(UBound(Row_l), UBound(Col_L))
                z = 1
            End If
            Grid1(i, t) = Col_L(t)
            
        
        NextNextLoopDebug.Print Grid1(1, 1)
    Close #1Sheets(1).Cells.EntireColumn.AutoFit
    End Sub
    还是显示下标越界。
      

  7.   

    看来你没看懂我的代码 
    Line Input 事一行行读  我的代码事直接处理一段数据Sub test1() Dim st As String 
    Dim st1, i As Integer, n As Integer 
    Dim k As Integer 
    Dim p As String 
    dim txtlineOpen ThisWorkbook.Path & "\a.txt" For Input As #1 Do Until EOF(1) 
    Line Input #1, txtline 
    st=st& txtline & vbcrlf 
    Loop 
    Close #1 z = 0 
    s = 0 Row_l = Split(st, vbCrLf) For i = 0 To UBound(Row_l) 
        Col_L = Split(Row_l(i), "|") 
        For t = 0 To UBound(Col_L) 
            If z = 0 Then 
                ReDim Grid1(UBound(Row_l), UBound(Col_L)) 
                z = 1 
            End If 
            Grid1(i, t) = Col_L(t) 
            
        
        Next Next Debug.Print Grid1(1, 1) 
    End Sub