2017-04-18 121 views
2

我有數據:Excel的VBA - 用逗號分隔的數據單元排序

A   B 

1 RED him, her, kirk 

2 BLUE kirk, rose, jill 

我想通過B列進行排序,對於用逗號分隔B列中的每個數據點創建行,輸出:

C  D 

1 her  RED 

2 him  RED 

3 jill BLUE 

4 kirk RED 

5   BLUE 

6 rose BLUE 

你能幫我解決嗎?我假設我需要excel來查看第2列中的每個單元格,爲每個逗號分隔的數據點創建數據庫,然後向每個數據庫添加第1列顏色。我不知道如何做到這一點,並輸出它。

+0

選擇列B,做'文本Columns',選擇'Delimited',選擇'逗號'並點擊'完成'。 – Kyle

回答

0

嘗試閱讀同樣的問題上SuperUser

我假設你插入你的文件轉換爲Excel:

Sub test() 

Set iWsh = WorkSheets("Sheet1") 'Sheet containing raw data (text-file) 
Set oWsh = Worksheets("Sheet2") 'Sheet you wanted to have processed data in it 

Set rng = [B1] 
Set rng = Range(rng, Cells(Rows.Count, rng.Column).End(xlUp)) 

rng.TextToColumns Destination:=rng, DataType:=xlDelimited, _ 
        ConsecutiveDelimiter:=False, Tab:=False, _ 
        Semicolon:=False, Comma:=True, Space:=False, Other:=False 

i = 1 
j = 2 
k = 1 

    While iWsh.Cells(i,1) <> "" ' Loops through rows of the data 
    Do While iWsh.Cells(i,j) <> "" 'Loops through column of the data 

     oWsh.Cells(k,1) = iWsh.Cells(i,j) 

     oWsh.Cells(k,2) = iWsh.Cells(i,1) 

     k = k + 1 
     j = j + 1 

    Loop 

    i = i + 1 
    j = 2 

    Wend 

End Sub 
+0

謝謝,但它似乎只是劃定同一工作表內的數據單元格。沒有排序,沒有輸出到第二張紙。 –

+0

@JasonCarroll現在就來看看吧。 – Masoud