Excel精英培训网

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

[已解决]根据数据向下填充

[复制链接]
发表于 2014-12-28 01:29 | 显示全部楼层 |阅读模式
要求附件内
根据数据向下填充完成.rar (12.01 KB, 下载次数: 17)
发表于 2014-12-28 10:32 | 显示全部楼层    本楼为最佳答案   
  1. Sub lqxs()
  2. Dim Arr, i&, nj$, col, c&
  3. Application.ScreenUpdating = False
  4. Sheet2.Activate
  5. [a2:o5000].ClearContents
  6. nj = "一二三": col = Array(1, 6, 11)
  7. Arr = Sheet1.[a1].CurrentRegion
  8. For i = 2 To UBound(Arr)
  9.     c = col(InStr(nj, Left(Arr(i, 2), 1)) - 1)
  10.     For j = 1 To Arr(i, 3)
  11.         n = Cells(Rows.Count, c).End(xlUp).Row + 1
  12.         Cells(n, c) = Arr(i, 1): Cells(n, c + 1) = Arr(i, 2)
  13.     Next
  14. Next
  15. Application.ScreenUpdating = True
  16. End Sub
复制代码

根据数据向下填充完成.rar

19.21 KB, 下载次数: 7

评分

参与人数 1 +1 收起 理由
amzxfgh9632 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-12-28 11:38 | 显示全部楼层
  1. Sub Macro1()
  2. Dim arr, brr, d, d2, i&, j%
  3. Set d = CreateObject("scripting.dictionary")
  4. Set d2 = CreateObject("scripting.dictionary")
  5. arr = Sheet1.Range("a1").CurrentRegion
  6. ReDim brr(1 To 60000, 1 To 200)
  7. n = -3
  8. For i = 2 To UBound(arr)
  9.     nj = Left(arr(i, 2), 3) '年级
  10. If Not d2.exists(nj) Then n = n + 5: d2(nj) = n
  11.     l = d2(nj) '列
  12.     If Not d.exists(nj) Then
  13.         d(nj) = arr(i, 3) + 1
  14.         brr(1, l - 1) = "学校名称"
  15.         brr(1, l) = nj
  16.         brr(1, l + 1) = "姓名"
  17.         brr(1, l + 2) = "语文"
  18.         brr(1, l + 3) = "数学"
  19.         For j = 1 To arr(i, 3)
  20.             brr(1 + j, l - 1) = arr(i, 1)
  21.             brr(1 + j, l) = arr(i, 2)
  22.         Next
  23.     Else
  24.         h = d(nj) '行
  25.         For j = 1 To arr(i, 3)
  26.             brr(h + j, l - 1) = arr(i, 1)
  27.             brr(h + j, l) = arr(i, 2)
  28.         Next
  29.         d(nj) = d(nj) + arr(i, 3)
  30.     End If
  31. Next
  32. zdh = Application.Max(d.items) '最大行
  33. zdl = Application.Max(d2.items) + 3 '最大列
  34. Sheet2.Range("a1").Resize(zdh, zdl) = brr
  35. End Sub
复制代码
回复

使用道具 举报

发表于 2014-12-28 11:40 | 显示全部楼层
标题和数据根据源数据自动填充

根据数据向下填充完成.zip

18.77 KB, 下载次数: 2

回复

使用道具 举报

 楼主| 发表于 2014-12-28 12:35 | 显示全部楼层
dsmch 发表于 2014-12-28 11:40
标题和数据根据源数据自动填充

谢谢了,完美解决,如果有什么问题还会再请教的,谢谢老师
回复

使用道具 举报

 楼主| 发表于 2015-1-4 12:02 | 显示全部楼层
蓝桥玄霜 发表于 2014-12-28 10:32

有个小问题,清除的时候一起将姓名,科目成绩一起清除了,输到一半,如果不小心按到按钮哪要坐着哭了
回复

使用道具 举报

 楼主| 发表于 2015-1-4 12:11 | 显示全部楼层
蓝桥玄霜 发表于 2014-12-28 10:32

麻烦版主再给改下,菜鸟,无招了
根据数据向下填充完成.rar (13.98 KB, 下载次数: 0)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 04:18 , Processed in 0.144121 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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