永发信息网

excel,如何快速有效实现分多列(按照内容分)?

答案:4  悬赏:70  手机版
解决时间 2021-12-02 00:58
  • 提问者网友:绫月
  • 2021-12-01 08:20
excel,如何快速有效实现分多列(按照内容分)?
最佳答案
  • 五星知识达人网友:第四晚心情
  • 2021-12-01 08:37
直接给VBA代码吧!VBA 操作步骤:  1、 打开你要处理的表(请处理前一定备份你的数据表);2、按住ALT + F11 ,双击ThisWorkbook,在出现的界面粘贴代码,见下图:

3、粘贴好代码后,按F5(或者直接点击 有“通用”字样上方那个小三角形),然后静等结果。
4、运行结果如下图:

最后:由于不知道你的数据量,整个数据能处理的初始为 1000 行,如果你的数据超过1000行,请再联系我。或者你自行修改代码中“1000”的地方。
友情提示:处理数据前,请注意数据备份。
Sub ReSort()
    Dim i As Integer
    For i = 2 To 1000
        If Cells(i, 1) <> "" And Cells(i, 1) <> Cells(i - 1, 1) Then
           Dim j As Integer
           For j = 4 To 1000 Step 2
             If Cells(2, j) = "" Then
                Cells(2, j) = Cells(i, 1)
                Exit For
             End If
           Next j
        End If
    Next i
    Dim i2 As Integer
    For i2 = 2 To 1000
    If Cells(i2, 1) <> "" Then
       Dim j2 As Integer
       For j2 = 2 To 1256 Step 2
         If Cells(i2, 1) = Cells(2, j2) Then
            If Cells(2, j2 + 1) = "" Then
               Cells(2, j2 + 1) = Cells(i2, 2)
               Exit For
            End If
            If Cells(2, j2 + 1) <> "" Then
               Dim n As Integer
               For n = 1 To 201
                If Cells(2 + n, j2 + 1) = "" And Cells(n + 1, j2 + 1) <> "" Then
                   Cells(n + 2, j2) = Cells(i2, 1)
                   Cells(n + 2, j2 + 1) = Cells(i2, 2)
                   Exit For
                End If
               Next n
            End If
            Exit For
         End If
       Next j2
    End If
    Next i2
End Sub
全部回答
  • 1楼网友:你哪知我潦倒为你
  • 2021-12-01 12:22
代码最快捷,只是要付费
  • 2楼网友:洒脱疯子
  • 2021-12-01 10:55
用vba处理是世界上最快的办法
  • 3楼网友:逐風
  • 2021-12-01 09:46

用VBA代码完成

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯