Excel精英培训网

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

[已解决]求段代码

[复制链接]
发表于 2012-10-13 11:14 | 显示全部楼层 |阅读模式
要求 样式  见附件  在此谢谢各位了
最佳答案
2012-10-13 12:19
fgt258 发表于 2012-10-13 12:14
编号提取不重复,相对应编号的 "数量,金额" 累加 ;; "重量,去向" 照搬(因为他们都是一样的,只要和编号对 ...

看看这样可以不??
  1. Sub LK()
  2. g = Timer
  3. Dim i As Long, arr(), brr(1 To 60000, 1 To 5), k As Long, h As Long, d As Object
  4. Set d = CreateObject("SCRIPTING.DICTIONARY")
  5. r = Cells(Rows.Count, 1).End(3).Row
  6. arr = Range("a2:e" & r).Value
  7. For i = 1 To r - 1
  8.     If d.Exists(arr(i, 1)) Then
  9.        h = d(arr(i, 1))
  10.        brr(h, 2) = brr(h, 2) + arr(i, 2)
  11.        brr(h, 4) = brr(h, 4) + arr(i, 5)
  12.     Else
  13.        k = k + 1
  14.        d(arr(i, 1)) = k
  15.        brr(k, 1) = arr(i, 1)
  16.        brr(k, 2) = arr(i, 2)
  17.        brr(k, 3) = arr(i, 3)
  18.        brr(k, 4) = arr(i, 5)
  19.        brr(k, 5) = arr(i, 4)
  20.     End If
  21. Next
  22. Range("g2:k65536").ClearContents
  23. Range("g2").Resize(k, 5) = brr
  24. MsgBox Timer - g
  25. End Sub
复制代码

imya.rar

14.96 KB, 下载次数: 5

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-10-13 11:37 | 显示全部楼层
楼至直接应用技巧就行了,不用这么麻烦,筛选不重复项就可以了,其他的用函数实现。
回复

使用道具 举报

 楼主| 发表于 2012-10-13 11:46 | 显示全部楼层
wk0316 发表于 2012-10-13 11:37
楼至直接应用技巧就行了,不用这么麻烦,筛选不重复项就可以了,其他的用函数实现。

数据是分两个工作簿存的,量较大,还存在条件,所以用公式不适合,,还请多多帮忙,,,谢谢
回复

使用道具 举报

发表于 2012-10-13 11:52 | 显示全部楼层
fgt258 发表于 2012-10-13 11:46
数据是分两个工作簿存的,量较大,还存在条件,所以用公式不适合,,还请多多帮忙,,,谢谢

你的附件里不是有段字典去重的代码了么??你还要什么??
回复

使用道具 举报

 楼主| 发表于 2012-10-13 11:56 | 显示全部楼层
huoxieshen 发表于 2012-10-13 11:52
你的附件里不是有段字典去重的代码了么??你还要什么??

那段 字典  只是提了不重复值,,,还是数据累加,和直接引用处理不了,, 字典ITEM 只能处理一项  还有三项不知如何处理
回复

使用道具 举报

发表于 2012-10-13 12:05 | 显示全部楼层
fgt258 发表于 2012-10-13 11:56
那段 字典  只是提了不重复值,,,还是数据累加,和直接引用处理不了,, 字典ITEM 只能处理一项  还有三项不知 ...

数量是哪一列累加??编号??还有需要颜色么??
回复

使用道具 举报

 楼主| 发表于 2012-10-13 12:14 | 显示全部楼层
本帖最后由 fgt258 于 2012-10-13 12:18 编辑
huoxieshen 发表于 2012-10-13 12:05
数量是哪一列累加??编号??还有需要颜色么??


编号提取不重复,相对应编号的 "数量,金额" 累加 ;; "重量,去向" 照搬(因为他们都是一样的,只要和编号对应就行) ,,颜色就不用了
回复

使用道具 举报

发表于 2012-10-13 12:19 | 显示全部楼层    本楼为最佳答案   
fgt258 发表于 2012-10-13 12:14
编号提取不重复,相对应编号的 "数量,金额" 累加 ;; "重量,去向" 照搬(因为他们都是一样的,只要和编号对 ...

看看这样可以不??
  1. Sub LK()
  2. g = Timer
  3. Dim i As Long, arr(), brr(1 To 60000, 1 To 5), k As Long, h As Long, d As Object
  4. Set d = CreateObject("SCRIPTING.DICTIONARY")
  5. r = Cells(Rows.Count, 1).End(3).Row
  6. arr = Range("a2:e" & r).Value
  7. For i = 1 To r - 1
  8.     If d.Exists(arr(i, 1)) Then
  9.        h = d(arr(i, 1))
  10.        brr(h, 2) = brr(h, 2) + arr(i, 2)
  11.        brr(h, 4) = brr(h, 4) + arr(i, 5)
  12.     Else
  13.        k = k + 1
  14.        d(arr(i, 1)) = k
  15.        brr(k, 1) = arr(i, 1)
  16.        brr(k, 2) = arr(i, 2)
  17.        brr(k, 3) = arr(i, 3)
  18.        brr(k, 4) = arr(i, 5)
  19.        brr(k, 5) = arr(i, 4)
  20.     End If
  21. Next
  22. Range("g2:k65536").ClearContents
  23. Range("g2").Resize(k, 5) = brr
  24. MsgBox Timer - g
  25. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2012-10-13 12:44 | 显示全部楼层
huoxieshen 发表于 2012-10-13 12:19
看看这样可以不??

非常感谢,,现在知道怎么定位某个数据的位置了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-8 13:07 , Processed in 0.303511 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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