Excel精英培训网

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

[已解决]另类转换有合并单元的情况

[复制链接]
 楼主| 发表于 2014-8-10 13:54 | 显示全部楼层
xdragon 发表于 2014-8-10 13:51
你也别把代码改的面目全非吧。。。控制循环的step都被你删掉了。。。。还有你的if判断语句放到for j=1 t ...

我习惯用 brr,arr, 不用cnt .
回复

使用道具 举报

 楼主| 发表于 2014-8-10 13:58 | 显示全部楼层
xdragon 发表于 2014-8-10 13:51
你也别把代码改的面目全非吧。。。控制循环的step都被你删掉了。。。。还有你的if判断语句放到for j=1 t ...

不用 step  能否继续OK?
回复

使用道具 举报

发表于 2014-8-10 14:03 | 显示全部楼层
张雄友 发表于 2014-8-10 13:58
不用 step  能否继续OK?

不用step会多出判断环节,比如 if len(arr(i,1)) then
回复

使用道具 举报

 楼主| 发表于 2014-8-10 14:10 | 显示全部楼层
xdragon 发表于 2014-8-10 14:03
不用step会多出判断环节,比如 if len(arr(i,1)) then

这样?
  1. Sub xdragon()
  2. TT = Timer
  3. Dim arr, i&, j&, m&
  4. arr = [A1].CurrentRegion
  5. ReDim brr(1 To UBound(arr) * UBound(arr, 2), 1 To 4)
  6. For i = 2 To UBound(arr)
  7. If Len(arr(i, 1)) Then
  8.       For j = 2 To UBound(arr, 2)
  9.          If Len(arr(i, j)) Then
  10.          m = m + 1
  11.          brr(m, 1) = arr(1, j)
  12.          brr(m, 2) = arr(i, 1)
  13.          brr(m, 3) = arr(i, j)
  14.          brr(m, 4) = arr(i + 1, j)
  15.          End If
  16.       Next
  17.    End If
  18. Next
  19. [Y:AB].ClearContents
  20. '[O2].Resize(m, 4) = brr
  21. [Y2].Resize(UBound(brr), UBound(brr, 2)) = brr
  22. MsgBox "用时" & Format(Timer - TT, "0.00") & "秒"
  23. End Sub
复制代码

点评

嗯,这样是可以的。  发表于 2014-8-10 14:12

评分

参与人数 1 +12 收起 理由
qh8600 + 12 老张的帖子,学习的好资料

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-30 14:46 , Processed in 0.294936 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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