2012-06-15 4 views
0

Предположим, что в столбце B есть данные, такие как Data1/Data2/Data3-1/Data3-7 - все остальные строки имеют разные данные.Разделить строки на excel на основе/в поле

Мне нужно взять каждую строку, которая имеет этот столбец B (некоторые из них не могут), и создать 1 строку для каждого отдельного значения, причем каждая другая часть данных в строке будет скопирована для всех из них.

Данные могут иметь символы, тире и другие случайные вещи, но сама по себе фактические данные не будут иметь/в нем, только/используется для обозначения линии разделения

Any1 знают, что лучший способ сделать это? Доступны Excel 07 и OO.

+0

забыл упомянуть, столбец данных с косой чертой имеет в нем переменное количество данных, например, 2, 3 или 4 /. – NRGdallas

+0

Насколько хорошо ваш VBA? Это может быть достигнуто посредством VBA с чуть более чем минимальным усилием. В противном случае, я думаю, вы оставили это вручную для каждой строки. –

ответ

2

Является ли решение VBA ОК?

Sub DuplicateRows() 
    Dim r As Range 

    Set r = Cells(Rows.Count, 2).End(xlUp) 

    Do While r.Row > 1 
     TestRow r 
     Set r = r.Offset(-1, 0) 
    Loop 
    TestRow r 


End Sub 

Sub TestRow(r As Range) 
    Dim i As Long, n As Long 
    Dim a() As String 

    i = InStr(r, "/") 
    If i > 0 Then 
     n = Len(r) - Len(Replace(r, "/", "")) 
     r.EntireRow.Copy 
     r.Offset(1, 0).Resize(n).EntireRow.Insert Shift:=xlDown 
     a = Split(r, "/") 
     For i = 0 To n 
      r.Offset(i, 0) = a(i) 
     Next 
    End If 
    Application.CutCopyMode = False 
End Sub 
Смежные вопросы