0

假设 B 列有数据,例如 Data1/Data2/Data3-1/Data3-7 - 所有其他行都有各种数据。

我需要获取具有 B 列的每一行(有些可能没有),并为每个单独的值创建 1 行,并为所有这些值复制该行中的所有其他数据。

数据可能有符号、破折号和其他随机的东西,但实际数据本身不会有/,只有/用于指定分割线

Any1知道最好的方法吗?Excel 07 和 OO 可用。

4

1 回答 1

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
于 2012-06-15T21:26:15.993 回答