Excel精英培训网

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

[已解决]编号自动展开

[复制链接]
发表于 2013-12-21 14:15 | 显示全部楼层 |阅读模式
12学分
求编号自动展开的方法:

如附件:
最佳答案
2013-12-21 14:56
本帖最后由 Zipall 于 2013-12-21 14:58 编辑
  1. Sub test()
  2.     arr = Range("A2").CurrentRegion
  3.     n = 2
  4.     Range("g2:h65536").ClearContents
  5.     For r = 2 To UBound(arr)
  6.         t = Split(arr(r, 1), "-")(0)
  7.         With Cells(n, 6)
  8.             .Value = t
  9.             .AutoFill .Resize(arr(r, 2))
  10.             .Offset(, 1).Resize(arr(r, 2)).Value = 1
  11.             .Offset(, 2).Resize(arr(r, 2)).Value = arr(r, 3) / arr(r, 2)
  12.         End With
  13.         n = n + Cells(r, 2).Value
  14.     Next
  15. End Sub
复制代码

编号展开.zip

8.97 KB, 下载次数: 143

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-12-21 14:24 | 显示全部楼层
回复

使用道具 举报

发表于 2013-12-21 14:43 | 显示全部楼层
VBA题?
好像以前就做过类似的题。
回复

使用道具 举报

发表于 2013-12-21 14:56 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Zipall 于 2013-12-21 14:58 编辑
  1. Sub test()
  2.     arr = Range("A2").CurrentRegion
  3.     n = 2
  4.     Range("g2:h65536").ClearContents
  5.     For r = 2 To UBound(arr)
  6.         t = Split(arr(r, 1), "-")(0)
  7.         With Cells(n, 6)
  8.             .Value = t
  9.             .AutoFill .Resize(arr(r, 2))
  10.             .Offset(, 1).Resize(arr(r, 2)).Value = 1
  11.             .Offset(, 2).Resize(arr(r, 2)).Value = arr(r, 3) / arr(r, 2)
  12.         End With
  13.         n = n + Cells(r, 2).Value
  14.     Next
  15. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-12-21 15:19 | 显示全部楼层
Zipall 发表于 2013-12-21 14:56

先顶一下,待我慢慢学习。
回复

使用道具 举报

 楼主| 发表于 2013-12-21 15:31 | 显示全部楼层
Zipall 发表于 2013-12-21 14:56

不过如果队伍里面有一个编号为“DD00001”也就是不带 “-” 的,程序就出错了。



回复

使用道具 举报

 楼主| 发表于 2013-12-21 15:37 | 显示全部楼层
billyzhang0609 发表于 2013-12-21 15:31
不过如果队伍里面有一个编号为“DD00001”也就是不带 “-” 的,程序就出错了。

   我知道了,  For r = 1 To UBound(arr)
回复

使用道具 举报

 楼主| 发表于 2013-12-21 17:20 | 显示全部楼层
billyzhang0609 发表于 2013-12-21 15:37
我知道了,  For r = 1 To UBound(arr)

不是修改For r = 1 To UBound(arr)

而是在
t = Split(arr(r, 1), "-")(0)

前面加ON ERROR resume next
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 22:12 , Processed in 0.287325 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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