Excel精英培训网

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

[已解决]一个较复杂的数据分组,不知道如何写程序,求高手出招,谢谢!

[复制链接]
发表于 2017-3-26 12:54 | 显示全部楼层 |阅读模式
一个较复杂的数据分组,不知道如何写程序,求高手出招,谢谢!
最佳答案
2017-3-27 12:41
改动数字后再按一下按钮吧,change事件虽然可以解决,但是没看到你的最终表,
担心你套用时会出现问题。
  1. Private Sub CommandButton1_Click()
  2. Dim arr, i&, j&, brr, n&, m&
  3. n = [e1]: m = 1
  4. arr = [a3].CurrentRegion
  5. brr = [d3].Resize(UBound(arr) * 3 - 1, n)
  6. [d4].Resize(65533, 253).ClearContents
  7. For j = 1 To UBound(brr, 2)
  8.   For i = 1 To brr(1, j)
  9.     m = m + 1
  10.     brr(i * 3 - 1, j) = arr(m, 1)
  11.     brr(i * 3, j) = arr(m, 2)
  12.   Next i
  13. Next j
  14. [d3].Resize(UBound(brr), UBound(brr, 2)) = brr
  15. End Sub
复制代码

分组.rar

9.65 KB, 下载次数: 12

发表于 2017-3-27 12:41 | 显示全部楼层    本楼为最佳答案   
改动数字后再按一下按钮吧,change事件虽然可以解决,但是没看到你的最终表,
担心你套用时会出现问题。
  1. Private Sub CommandButton1_Click()
  2. Dim arr, i&, j&, brr, n&, m&
  3. n = [e1]: m = 1
  4. arr = [a3].CurrentRegion
  5. brr = [d3].Resize(UBound(arr) * 3 - 1, n)
  6. [d4].Resize(65533, 253).ClearContents
  7. For j = 1 To UBound(brr, 2)
  8.   For i = 1 To brr(1, j)
  9.     m = m + 1
  10.     brr(i * 3 - 1, j) = arr(m, 1)
  11.     brr(i * 3, j) = arr(m, 2)
  12.   Next i
  13. Next j
  14. [d3].Resize(UBound(brr), UBound(brr, 2)) = brr
  15. End Sub
复制代码

test.zip

11.53 KB, 下载次数: 5

回复

使用道具 举报

 楼主| 发表于 2017-3-27 20:48 | 显示全部楼层
非常感谢“大灰狼1976 ”的解答,完美的解决了我的这个难题!高手!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 14:33 , Processed in 0.277793 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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