ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: FU8989

[求助] 多列转一列

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-10-20 16:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请测试:
Sub Macro1()
    Dim arr, brr(), d As Object, ds As Object, i&, j%, temp%, lr%
    arr = Range("N1:Y6")
    Set d = CreateObject("scripting.dictionary")
    Set ds = CreateObject("scripting.dictionary")
    For j = 1 To UBound(arr, 2)
        Set d(j) = CreateObject("scripting.dictionary")
    Next
    For i = 2 To UBound(arr)
        For j = 1 To UBound(arr, 2)
            If Len(arr(i, j)) Then d(j)(arr(i, j)) = "" '不计“空白”
        Next
    Next
    arr = Range("A2:L" & Range("A65536").End(xlUp).Row)
    ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
    For j = 1 To UBound(arr, 2)
        For i = 1 To UBound(arr)
            arr(i, j) = Format(arr(i, j), "00")
            temp = Val(Left(arr(i, j), 1)) + Val(Right(arr(i, j), 1))
            If d(j).Exists(temp) Then
                ds(j) = ds(j) + 1
                brr(ds(j), j) = arr(i, j)
            ElseIf d(j).Exists(Val(Right(temp, 1))) Then '取个位数
                ds(j) = ds(j) + 1
                brr(ds(j), j) = arr(i, j)
            End If
        Next
        If ds(j) > lr Then lr = ds(j)
    Next
    Range("N7:Y" & ActiveSheet.UsedRange.Rows.Count).ClearContents
    With Range("N7").Resize(lr, UBound(arr, 2))
        .Value = brr
        .NumberFormatLocal = "00"
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2009-10-20 16:50 | 显示全部楼层
我是看了你回复FU8989的VBA的帖,感觉我这个东西对于你来讲,应该特别简单,
也帮我看看,谢了

随机50-03.rar

9.13 KB, 下载次数: 11

TA的精华主题

TA的得分主题

发表于 2009-10-20 17:24 | 显示全部楼层

回复 23楼 thqiou 的帖子

谢谢楼上的信任,这个课题对我来说可以说是可望不可及的,请向高手求助吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-10-20 17:53 | 显示全部楼层

回复 22楼 zhaogang1960 的帖子

谢谢 可是T列和Y列二数是相减的 必须是十位减个位 如果不够减加10后再减个位 麻烦你了

TA的精华主题

TA的得分主题

发表于 2009-10-20 23:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 26楼 FU8989 的帖子

请测试
333333.rar (11.56 KB, 下载次数: 7)

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-10-20 23:59 | 显示全部楼层

回复 27楼 zhaogang1960 的帖子

还有出错 看附件

333333更改.rar

10.1 KB, 下载次数: 1

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-10-23 12:34 | 显示全部楼层

回复 22楼 zhaogang1960 的帖子

zhaogang1960 寻求你解决这个问题 谢谢了

筛选路数字.rar

42.62 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2009-10-23 16:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请测试
筛选路数字.rar (61.35 KB, 下载次数: 13)

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-10-23 18:59 | 显示全部楼层

回复 32楼 zhaogang1960 的帖子

试好了 很好 多谢谢你

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-10-24 04:57 | 显示全部楼层

回复 33楼 FU8989 的帖子

我用起来有出错的  看附件 麻烦你修改一下
补充说明:
把0,1,2,3,4,5,6,7,8,9十个数字  分为三路   0路是369    一路是147    2路是258
要求0000----9999一万个四位数字中找出---含有3路的数字来 缺少其中1路的不要
谢谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-24 15:01 , Processed in 0.037093 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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