有一张txt的表,表名为:aa.txt 
内容如下: 
EDFS01a319 西区 
EDFS01a319 西区 
EDFS01a029 东区 
EDFS0BH1V 西区 
EDFS0BH1F 西区 
EDFS01a333 东区 
EDFS0BH1K 西区 
EDFS0BH0Y 西区 
EDFS01a319 西区 
EDFS01a313 西区 
EDFS01a319 西区 
EDFS01a361 东区 
EDFS01a325 东区 
EDFS01a323 东区 
EDFS01a322 东区 
EDFS01a029 东区 
现在我想将他们分开两列,东区的归一列,西区的归一列: 
愿景效果如下: 
EDFS01a029 东区 EDFS01a319 西区 
EDFS01a333 东区 EDFS01a319 西区 
EDFS01a361 东区 EDFS0BH1V 西区 
EDFS01a325 东区 EDFS0BH1F 西区 
EDFS01a323 东区 EDFS0BH1K 西区 
EDFS01a322 东区 EDFS0BH0Y 西区 
EDFS01a029 东区 EDFS01a319 西区 
                  EDFS01a313 西区 
                  EDFS01a319 西区 部分代码如下,希望高手帮忙改下: 
Sub test2() Dim st As String 
Dim st1, i As Integer, n As Integer 
Dim k As String 
Dim kk As String 
Dim pp As String 
Dim p As String 
Dim txtline Open ThisWorkbook.Path & "\aa.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), 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) 
        
    
    Next Next 
For i = 0 To UBound(Grid1) 
If Grid1(i, 1) = "东区" Then Cells(i + 1, 1) = Grid1(i, 0) 
Cells(i + 1, 2) = Grid1(i, 1) 
Else 
Cells(i + 1, 3) = Grid1(i, 0) 
Cells(i + 1, 4) = Grid1(i, 1) 
End If 
Next 
close #1 
Sheets(1).Cells.EntireColumn.AutoFit 
End Sub 
出来的效果是: 
                   EDFS01a319   西区 
                   EDFS01a319   西区 
EDFS01a029 东区 
                   EDFS0BH1V   西区 
                   EDFS0BH1F   西区 
EDFS01a333 东区 
                   EDFS0BH1K   西区 
                   EDFS0BH0Y   西区 
                   EDFS01a319   西区 
                   EDFS01a313   西区 
                   EDFS01a319   西区 
EDFS01a361 东区 
EDFS01a325 东区 
EDFS01a323 东区 
EDFS01a322 东区 
EDFS01a029 东区 

解决方案 »

  1.   

    For i = 0 To UBound(Grid1) 
    If Grid1(i, 1) = "东区" Then Cells(i + 1, 1) = Grid1(i, 0) 
    Cells(i + 1, 2) = Grid1(i, 1) 
    Else 
    Cells(i + 1, 3) = Grid1(i, 0) 
    Cells(i + 1, 4) = Grid1(i, 1) 
    End If 
    Next 
    close #1  这个多余
    Sheets(1).Cells.EntireColumn.AutoFit 
    End Sub
      

  2.   

    Dim txtline As String, i As Integer, n As Integer, L As integerList1.Visible = False
    List2.Visible = False
    List1.Clear
    List2.ClearOpen aa.txt For Input As #1
    Do Until EOF(1) 
        Line Input #1, txtline
        If right(txtline, 2) = "东区" Then
            List1.AddItem txtline  
        Else
            List2.AddItem txtline  
        End If
    Loop
    Close #1L = Len(txtline)
    n = List1.ListCount
    If List2.ListCount > n Then n = List2.ListCountOpen "aa.csv" For Output As 
    For i = 0 To n -1
        txtline = ""
        // 取东区数据
        If i < List1.ListCount Then txtline = List1.List(i)
        txtline = txtline  & "," 
        // 取西区数据
        If i < List2.ListCount Then txtline = txtline & List2.List(i)
        Print txtline
    Next i 
    Close #1
      

  3.   

    更正:
        Print #1, txtline