Excel精英培训网

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

[已解决]麻烦老师帮我看看,如何修改代码。

[复制链接]
发表于 2016-12-14 09:13 | 显示全部楼层 |阅读模式
老师,您好,麻烦帮我看看,如何修改代码?说明:即便是同个区域代码和名称,只要是区域小类不同,就当做新的数据,如 Book1.zip (4.59 KB, 下载次数: 3)
发表于 2016-12-14 09:58 | 显示全部楼层
为什么要横过来写呢?原来的数据格式很好啊。
回复

使用道具 举报

发表于 2016-12-14 10:12 | 显示全部楼层    本楼为最佳答案   
结果显示在22行开始。
  1. Sub tt()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     arr = Sheets(1).Range("a1").CurrentRegion
  4.     ReDim brr(1 To UBound(arr), 1 To 1000)
  5.     ReDim nn(1 To UBound(arr))
  6.     For k = 1 To UBound(arr, 1)
  7.         x = arr(k, 1) & arr(k, 2) & arr(k, 3)
  8.         If Not d.exists(x) Then
  9.            n = n + 1: d(x) = n
  10.            For j = 1 To UBound(arr, 2)
  11.                brr(n, j) = arr(k, j)
  12.            Next
  13.            nn(n) = UBound(arr, 2)
  14.         Else
  15.            p = d(x)
  16.            For j = 1 To 5
  17.                brr(p, nn(p) + j) = arr(k, j + 3)
  18.                brr(1, nn(p) + j) = arr(1, j + 3)
  19.            Next
  20.            nn(p) = nn(p) + 5
  21.         End If
  22.     Next
  23.     If n > 0 Then [a22].Resize(n, Application.Max(nn)) = brr
  24. End Sub
复制代码

Book1.rar

10.47 KB, 下载次数: 6

回复

使用道具 举报

 楼主| 发表于 2016-12-14 10:20 | 显示全部楼层
grf1973 发表于 2016-12-14 10:12
结果显示在22行开始。

谢谢老师耐心指导,横着写,有利于清楚。那如果不横着写,应该怎么写。
回复

使用道具 举报

发表于 2016-12-14 10:30 | 显示全部楼层
原来那种写法是最好的数据格式,标准的二维数据库结构,便于查询,汇总等各种处理。
回复

使用道具 举报

 楼主| 发表于 2016-12-14 20:20 | 显示全部楼层
grf1973 发表于 2016-12-14 10:30
原来那种写法是最好的数据格式,标准的二维数据库结构,便于查询,汇总等各种处理。

我能理解,感谢老师耐心指导!也麻烦老师帮我看看:继续追问:麻烦老师帮我修改下代码
http://www.excelpx.com/thread-426380-1-1.html
(出处: Excel精英培训网)

回复

使用道具 举报

发表于 2017-8-12 15:05 | 显示全部楼层
学习
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 17:08 , Processed in 0.319813 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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