EXCEL高手请进。通过宏或者公式实现,当一行数据中的某个单元格等于某个数时,则下一行自动复制此行
EXCEL高手请进。如何实现当一行数据中的某个单元格等于某个数时,则下一行自动复制此行,复制行具体的要求如下表格,.求高手谢谢。例如:如果A1单元格内容是AA,自动复制该...
EXCEL高手请进。 如何实现 当一行数据中的某个单元格等于某个数时,则下一行自动复制此行,复制行具体的要求如下表格,.求高手谢谢。 例如:如果 A1单元格 内容是 AA,自动复制该行,根据E1中分号(以某个有规律的数据)的个数分,如果是2个分号(;)就分3行, 3个分号(;)就分4行,其中 A2=A1(AA) B2=B1(BB) C2=C1(DD) E2= (大) ,依次类推,分成3行,如果有高手知道的可以发到我邮箱 860077880@qq.com,不胜感激。 输入是 第一行, 输出结果是变成 2、3、4行,
展开
2个回答
展开全部
附件中有样本文件。
代码如下
Sub 数据拆分()
Dim ary, i As Long, j As Integer, str As String, str1 As String
For i = 2 To [b65536].End(3).Row
str = VBA.Replace(Cells(i, "B"), ";", ";")
ary = Split(str, ";")
sj = Sheets(2).[c65536].End(3).Row + 1
Range("c" & i & ":I" & i).Copy Sheets(2).Cells(sj, "C").Resize(UBound(ary) + 1, 7)
For j = 0 To UBound(ary)
For k = 1 To Len(ary(j))
If IsNumeric(Mid(ary(j), k, 1)) Then
Sheets(2).Cells(Sheets(2).[a65536].End(3).Row + 1, "A") = Right(ary(j), Len(ary(j)) - k + 1)
Exit For
End If
Next k
Sheets(2).Cells(Sheets(2).[b65536].End(3).Row + 1, "B") = Application.Substitute(ary(j), "x" & Sheets(2).Cells(Sheets(2).[b65536].End(3).Row + 1, "A"), "")
Next j
Next i
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询