Excel精英培训网

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

[已解决]怎样用VBA把红色区域数字(红色区域数字个数没定) 依次排列在黄色区域

[复制链接]
发表于 2017-8-15 22:00 | 显示全部楼层 |阅读模式
怎样用VBA把红色区域数字(红色区域数字个数没定) 依次排列在黄色区域
最佳答案
2017-8-16 17:51
本帖最后由 爱疯 于 2017-8-16 17:53 编辑

Sub test()
    Dim rng As Range, x, i
    Set rng = [e5:z37]
    rng.ClearContents
    For Each x In [e3].CurrentRegion
        i = i + 1
        rng(i) = x
    Next
End Sub

求助.rar

8.39 KB, 下载次数: 15

发表于 2017-8-16 09:53 | 显示全部楼层
  1. =IF(COUNT($E$3:$CF$3)>ROW(A1)*22-27+COLUMN(),LARGE($E$3:$CF$3,ROW(A1)*22-26+COLUMN()),"")
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-8-16 17:36 | 显示全部楼层
回复

使用道具 举报

发表于 2017-8-16 17:51 | 显示全部楼层    本楼为最佳答案   
本帖最后由 爱疯 于 2017-8-16 17:53 编辑

Sub test()
    Dim rng As Range, x, i
    Set rng = [e5:z37]
    rng.ClearContents
    For Each x In [e3].CurrentRegion
        i = i + 1
        rng(i) = x
    Next
End Sub
回复

使用道具 举报

 楼主| 发表于 2017-8-16 18:28 | 显示全部楼层
爱疯 发表于 2017-8-16 17:51
Sub test()
    Dim rng As Range, x, i
    Set rng = [e5:z37]

谢谢版主,原来可以这样写,我自己想的有点复杂了。开始我写了一个数组,arr = [e3].CurrentRegion.Value,然后就是不晓得怎样把数组里面的数据提取出来在黄色区域。
回复

使用道具 举报

发表于 2017-8-16 18:50 | 显示全部楼层
'比如,a1:b3中的值如下
'a d g
'b e h
'c f i
Sub test()
    Dim rng As Range, arr, x
    Set rng = [a1:c3]
    arr = rng

    Debug.Print "在单元格区域中for each,一行行的读"
    For Each x In rng
        Debug.Print x
    Next

    Debug.Print "在数组中for each,一列列的读"
    For Each x In arr
        Debug.Print x
    Next
End Sub
'返回
'a
'd
'g
'b
'e
'h
'c
'f
'i
'- - - - - -
'a
'b
'c
'd
'e
'f
'g
'h
'i

回复

使用道具 举报

 楼主| 发表于 2017-8-16 20:56 | 显示全部楼层
爱疯 发表于 2017-8-16 18:50
'比如,a1:b3中的值如下
'a d g
'b e h

谢谢版主耐心讲解。我懂了。刚刚又学习了。
回复

使用道具 举报

发表于 2017-8-16 22:03 | 显示全部楼层
学习了   
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 15:28 , Processed in 0.342248 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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