2016-07-14 4 views
-2

У меня есть два листа в моем превосходстве. Имея следующие данные в моем Excel В первом листе, у меня естьExcel Macro - ячейки, разделенные запятыми, на строки разных листов


column 1: a  Column 2: p,q,r,s  Column 3: u,v,w  Column 4: x,y,z 
column 1: b  Column 2: q,r   Column 3: u,v,w  Column 4: z 

....... и т.д. ##


с каждой строкой, представляющей собой строку и в одном клетка.

Я хотел бы, чтобы преобразовать его в:

1. (column 1) a (column 2) p 
2. (column 1) a (column 2) q 
3. (column 1) a (column 2) r 
4. (column 1) a (column 2) s 
5. (column 1) a      (column 3) u 
6. (column 1) a      (column 3) v 
7. (column 1) a      (column 3) w 
8. (column 1) a           (column 4) x 
9. (column 1) a           (column 4) y 
10.(column 1) a           (column 4) z 

ответ

0

Попробуйте с ниже код

Sub test() 
    Dim lastrow, lastcolumn, i, j, k As Long 
    Dim str1, str2 
    lastrow = Range("A" & Rows.Count).End(xlUp).Row 
    lastcolumn = Cells(1, Columns.Count).End(xlToLeft).Column 
    For i = 1 To lastrow 
     For j = 2 To lastcolumn 
      str1 = Split(Cells(i, j), ",") 
      str2 = UBound(str1) 
      For k = 0 To str2 
       With Sheets("Sheet2") 
        .Range("A" & .Range("A" & Rows.Count).End(xlUp).Row + 1).Value = Cells(i, 1) 
        .Range("B" & .Range("B" & Rows.Count).End(xlUp).Row + 1).Value = str1(k) 
       End With 
      Next k 
     Next j 
    Next i 
End Sub 

Доказательство работы

enter image description here

+0

Спасибо так много Karthick. Код отлично работает –

+0

@Poorni, Добро пожаловать всегда –

Смежные вопросы