Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1717|回复: 6

[已解决]请高手帮忙,解决分类问题!

[复制链接]
发表于 2010-3-15 17:08 | 显示全部楼层 |阅读模式
附件明细表中公司名相同的新建一张表复制过去,也就是要把总表的内容拆开,分84张表,手动复制太慢,请高手帮梦写程序!总共84个公司 pMxltO7M.rar (90.06 KB, 下载次数: 0)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2010-3-15 17:57 | 显示全部楼层
回复

使用道具 举报

发表于 2010-3-15 18:09 | 显示全部楼层

Sub t()
Application.ScreenUpdating = False
Dim i As Integer, j As Integer, k As Integer, l As Integer
Dim arr, arr1, arr2
Dim d As Object
Set d = CreateObject("scripting.dictionary")
With Sheet1
    arr = .Range("A1:L" & .[b65536].End(xlUp).Row)
End With
For i = 2 To UBound(arr)
    d(arr(i, 2)) = ""
Next
arr1 = d.keys
ReDim arr2(1 To UBound(arr), 1 To UBound(arr, 2))
k = 1

    
For i = 0 To UBound(arr1)
ReDim arr2(1 To UBound(arr), 1 To UBound(arr, 2))
    For l = 1 To UBound(arr, 2)
       arr2(1, l) = arr(1, l)
     Next
    For j = 2 To UBound(arr)
        If arr(j, 2) = arr1(i) Then
            k = k + 1
            For l = 1 To UBound(arr, 2)
                arr2(k, l) = arr(j, l)
            Next
        End If
    Next
    k = 1
    Sheets.Add
    With ActiveSheet
        .Name = arr1(i)
        .[a1].Resize(UBound(arr), UBound(arr, 2)) = arr2
       
    End With
Next
Set d = Nothing
Application.ScreenUpdating = True
End Sub

[此贴子已经被作者于2010-3-15 18:35:17编辑过]
回复

使用道具 举报

发表于 2010-3-15 18:13 | 显示全部楼层

学习[em02][em02][em02]
回复

使用道具 举报

 楼主| 发表于 2010-3-15 18:30 | 显示全部楼层

你好,不对啊,每个工作表里只放一个公司的,但是你这个放了好多个公司的!请帮忙再看看,谢谢![em04]
回复

使用道具 举报

发表于 2010-3-15 18:36 | 显示全部楼层

已经修改了
回复

使用道具 举报

发表于 2010-3-15 18:56 | 显示全部楼层    本楼为最佳答案   

9DdBoZlf.rar (202.86 KB, 下载次数: 10)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-17 01:32 , Processed in 0.287418 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表