0

次の方法で列に構造化されたデータの長いリストがあります。

miR-4782-5p
miR-4740-3p
miR-3173-5p
miR-617/2340
miR-1260/1260b/1391
miR-4642
miR-1392

次の形式に変換する必要があります。

miR-4782-5p
miR-4740-3p
miR-3173-5p
miR-617
miR-2340
miR-1260
miR-1260b
miR-1391
miR-4942
miR-1392

本質的には、括弧でグループ化されたデータを分離し、それを独自の項目にして、リストを続けたいだけです。

考え?

4

1 に答える 1

1

このコードは、必要なことだけを行う必要があります

Sub SplitCellsAndExtend_Olddasgf()
'takes cells with inside line feeds and creates new row for each.
'reverses merge into top cell.

Dim strCell As String, lastRow As Long, i As Long, j As Long, sPrefix As String
Const sSplitOn As String = "/"

application.ScreenUpdating = False
lastRow = Cells(Rows.Count, 1).End(xlUp).Row

    For i = lastRow To 1 Step -1
        strCell = Cells(i, 1)
        j = 0

        Do While InStr(1, strCell, sSplitOn) > 0
            Rows(i + j + 1).Insert
            sPrefix = Left(strCell, InStr(strCell, "-"))
            strCell = Right(strCell, Len(strCell) - InStr(1, strCell, sSplitOn))
            Cells(i + j, 1) = Left(Cells(i + j, 1).Value, InStr(1, Cells(i + j, 1), sSplitOn) - 1)
            strCell = sPrefix & strCell
            Cells(i + j + 1, 1).Value = strCell
            j = j + 1
        Loop
    Next
application.ScreenUpdating = True
End Sub
于 2012-11-08T20:51:06.730 に答える