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行, 展开
 我来答
百度网友e1af404
2014-08-21 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.1万
采纳率:59%
帮助的人:4016万
展开全部

附件中有样本文件。

代码如下

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


1581557588
2014-08-21 · TA获得超过4245个赞
知道大有可为答主
回答量:6641
采纳率:62%
帮助的人:539万
展开全部
民间彩票爱好者,呵呵
有一个笨一点的办法供你参考:
如果最多是复制3行,那就让每一行数据下面都跟着三行复制出来的数据
在F列加一个给分号计数的函数,函数的值取0,1,2
A列为例:A2=A1
A3=IF(F1=1,A1,"")
A4=IF(F1=2,A1,"")
这样做完之后 在第一行加“自动筛选” 把空行删掉。
再去掉筛选就是你要的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式