Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: zhouxingyu

[已解决]用代码分割数据

[复制链接]
 楼主| 发表于 2015-1-11 11:15 | 显示全部楼层
张雄友 发表于 2015-1-11 11:08
我只是模拟效果。

多谢.想要的就是这效果,当中不用空行.
回复

使用道具 举报

发表于 2015-1-11 11:31 | 显示全部楼层    本楼为最佳答案   
  1. Sub test()
  2.     Dim arr, i&, re, jg%, rng As Range, maxcol%, col%
  3.     Set rng = Range("C1") '设置导出的区域
  4.     jg = 15  '设置每行间隔
  5.     maxcol = Columns.Count - rng.Column + 1
  6.     arr = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
  7.     col = UBound(arr) \ jg + IIf(UBound(arr) Mod jg = 0, 0, 1)
  8.     ReDim re(1 To jg * (col \ maxcol + 1), 1 To IIf(maxcol < col, maxcol, col))
  9.     For i = 1 To UBound(arr)
  10.         re((i - 1) Mod jg + 1 + Int((i - 1) / maxcol / jg) * jg, (i - 1) \ jg Mod maxcol + 1) = arr(i, 1)
  11.     Next
  12.     rng.Resize(UBound(re), UBound(re, 2)) = re
  13.     Range("A1").Copy
  14.     rng.Resize(UBound(re), UBound(re, 2)).PasteSpecial Paste:=xlPasteFormats
  15.     Application.CutCopyMode = False
  16. End Sub
复制代码

评分

参与人数 2 +9 收起 理由
张雄友 + 6 很给力!
zhouxingyu + 3 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-1-11 11:38 | 显示全部楼层
xdragon 发表于 2015-1-11 11:31

完美实现,太感谢了!
回复

使用道具 举报

发表于 2015-1-11 11:51 | 显示全部楼层
xdragon 发表于 2015-1-11 11:31

如果每15行隔一空行是怎么样的?

点评

第八行改为ReDim re(1 To (jg+1) * (col \ maxcol+1)-1, 1 To IIf(maxcol<col, maxcol, col));第十行改为re((i-1) Mod jg+1+Int((i-1)/maxcol/jg) * (1+jg), (i-1) \ jg Mod maxcol + 1) = arr(i, 1)  发表于 2015-1-11 13:55
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-25 19:09 , Processed in 0.334758 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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