Excel精英培训网

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

[已解决]单元格内多机构改为分别单行显示问题

[复制链接]
发表于 2015-10-21 21:02 | 显示全部楼层 |阅读模式
本帖最后由 richalken 于 2015-10-21 22:34 编辑

我的数据中某一个单元格中有多个机构,我希望将不同的结构分别改为单行显示,请大侠帮忙。谢谢啦!!!{:041:}
最佳答案
2015-10-21 21:18
本帖最后由 hysys32 于 2015-10-21 21:21 编辑
richalken 发表于 2015-10-21 21:04
自己顶一下,希望有大侠路过出手相助

Sub test()
    Dim arr, arrTmp
    Dim rarr(1 To 100000, 1 To 5)
    Dim i As Long
    Dim k As Long
    Dim j As Long
    arr = Sheet1.Range("a1").CurrentRegion
    For i = 1 To UBound(arr)
       If VBA.InStr(1, arr(i, 5), "/") Then
           arrTmp = Split(arr(i, 5), "/")
           For j = 0 To UBound(arrTmp)
               k = k + 1
               For c = 1 To 4
                    rarr(k, c) = arr(i, c)
               Next
               rarr(k, 5) = arrTmp(j)
           Next
       Else
             k = k + 1
             For c = 1 To 5
                    rarr(k, c) = arr(i, c)
               Next
       End If
    Next
    Sheet2.Cells.Clear
    Sheet2.Range("a1").Resize(k, 5) = rarr
End Sub
单行显示.rar (16.74 KB, 下载次数: 8)

多机构单行显示.zip

8.14 KB, 下载次数: 2

 楼主| 发表于 2015-10-21 21:04 | 显示全部楼层
自己顶一下,希望有大侠路过出手相助{:091:}{:091:}{:091:}
回复

使用道具 举报

发表于 2015-10-21 21:18 | 显示全部楼层    本楼为最佳答案   
本帖最后由 hysys32 于 2015-10-21 21:21 编辑
richalken 发表于 2015-10-21 21:04
自己顶一下,希望有大侠路过出手相助

Sub test()
    Dim arr, arrTmp
    Dim rarr(1 To 100000, 1 To 5)
    Dim i As Long
    Dim k As Long
    Dim j As Long
    arr = Sheet1.Range("a1").CurrentRegion
    For i = 1 To UBound(arr)
       If VBA.InStr(1, arr(i, 5), "/") Then
           arrTmp = Split(arr(i, 5), "/")
           For j = 0 To UBound(arrTmp)
               k = k + 1
               For c = 1 To 4
                    rarr(k, c) = arr(i, c)
               Next
               rarr(k, 5) = arrTmp(j)
           Next
       Else
             k = k + 1
             For c = 1 To 5
                    rarr(k, c) = arr(i, c)
               Next
       End If
    Next
    Sheet2.Cells.Clear
    Sheet2.Range("a1").Resize(k, 5) = rarr
End Sub
单行显示.rar (16.74 KB, 下载次数: 8)
回复

使用道具 举报

 楼主| 发表于 2015-10-21 22:17 | 显示全部楼层
hysys32 发表于 2015-10-21 21:18
Sub test()
    Dim arr, arrTmp
    Dim rarr(1 To 100000, 1 To 5)

大侠太有效率了,赞!!!{:35:}{:35:}

不过有个小问题,在“代码”字段中,我有数据是0开头的(如000233,004765,000087)等,运行后前面的0都木有了(我把字段类型设置成 字符 也么有效果),手动加工作量太大了,大侠可以改进一下吗?{:06:}
回复

使用道具 举报

 楼主| 发表于 2015-10-21 22:34 | 显示全部楼层
hysys32 发表于 2015-10-21 21:18
Sub test()
    Dim arr, arrTmp
    Dim rarr(1 To 100000, 1 To 5)

自己补好了,使用excel自定义的格式,多谢大侠。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 22:46 , Processed in 0.541003 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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