假设 B 列有数据,例如 Data1/Data2/Data3-1/Data3-7 - 所有其他行都有各种数据。
我需要获取具有 B 列的每一行(有些可能没有),并为每个单独的值创建 1 行,并为所有这些值复制该行中的所有其他数据。
数据可能有符号、破折号和其他随机的东西,但实际数据本身不会有/,只有/用于指定分割线
Any1知道最好的方法吗?Excel 07 和 OO 可用。
假设 B 列有数据,例如 Data1/Data2/Data3-1/Data3-7 - 所有其他行都有各种数据。
我需要获取具有 B 列的每一行(有些可能没有),并为每个单独的值创建 1 行,并为所有这些值复制该行中的所有其他数据。
数据可能有符号、破折号和其他随机的东西,但实际数据本身不会有/,只有/用于指定分割线
Any1知道最好的方法吗?Excel 07 和 OO 可用。
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