Excel精英培训网

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

[已解决]字符提取排列

[复制链接]
发表于 2013-9-12 18:40 | 显示全部楼层 |阅读模式
本帖最后由 hanjia 于 2013-9-12 19:40 编辑

提取A列字符    如A1是大   自动排在C1  像A2是小就自动跳到D1
A3是小自动排在D列   A4换大就自动跳到E1
像A2是小就自动跳到D1  
最好是判断后在Sheet2排列

A         B       C         D       E        F        G   
大  
小        大      小       大      小      大       小
小                 小       大      小      大       小
大                                              大       小
大                                              大










Book1.rar (6.69 KB, 下载次数: 2)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-9-12 19:14 | 显示全部楼层
如果第一个字符为“小”怎么办?
如果6列之后又出现“大”怎么办?
回复

使用道具 举报

发表于 2013-9-12 19:16 | 显示全部楼层
Private Sub cx
   x = 1
    y = 1
    i = 2
    Sheet2.Cells(x, y) = ActiveSheet.Cells(1, 1)
    Do While ActiveSheet.Cells(i, 1) <> ""
        If ActiveSheet.Cells(i, 1) = ActiveSheet.Cells(i - 1, 1) Then
            x = x + 1
            Sheet2.Cells(x, y) = ActiveSheet.Cells(i, 1)
        Else
            y = y + 1
            x = 1
            Sheet2.Cells(x, y) = ActiveSheet.Cells(i, 1)
        End If
        i = i + 1
    Loop
   
    Sheet2.Activate

End Sub
回复

使用道具 举报

 楼主| 发表于 2013-9-12 19:23 | 显示全部楼层
zjdh 发表于 2013-9-12 19:14
如果第一个字符为“小”怎么办?
如果6列之后又出现“大”怎么办?

返正第一个就是放在第一位  再来就接着往后排
回复

使用道具 举报

发表于 2013-9-12 19:31 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2013-9-12 19:38 编辑

Sub TEST()
    D = 1
    ARR = Range("A1:A" & Range("A65536").End(3).Row)
    ReDim T(1 To 1)
    T(D) = ARR(1, 1)
    Z = ARR(1, 1)
    For I = 2 To UBound(ARR)
        If ARR(I, 1) = Z Then
            T(D) = T(D) & Chr(10) & ARR(I, 1)
        Else
            D = D + 1
            ReDim Preserve T(1 To D)
            T(D) = ARR(I, 1)
            Z = ARR(I, 1)
        End If
    Next
    Sheets(2).Range("A1").Resize(1, UBound(T)) = T
End Sub
Book1.rar (12.88 KB, 下载次数: 6)
回复

使用道具 举报

 楼主| 发表于 2013-9-12 19:48 | 显示全部楼层
zjdh 发表于 2013-9-12 19:31
Sub TEST()
    D = 1
    ARR = Range("A1:A" & Range("A65536").End(3).Row)

你好   能不能再提取一排? 比如提取B列到Shee2第五行
回复

使用道具 举报

 楼主| 发表于 2013-9-12 20:46 | 显示全部楼层
本帖最后由 hanjia 于 2013-9-12 20:49 编辑
zjdh 发表于 2013-9-12 19:31
Sub TEST()
    D = 1
    ARR = Range("A1:A" & Range("A65536").End(3).Row)

如何再增加提取B列   
还有就是 大  双 字要红色的  其他字体为黑色
Sub TEST()
     D = 1
     ARR = Range("A1:A" & Range("A65536").End(3).Row)
     ReDim T(1 To 1)
     T(D) = ARR(1, 1)
     Z = ARR(1, 1)
     For I = 2 To UBound(ARR)
         If ARR(I, 1) = Z Then
             T(D) = T(D) & Chr(10) & ARR(I, 1)
         Else
             D = D + 1
             ReDim Preserve T(1 To D)
             T(D) = ARR(I, 1)
             Z = ARR(I, 1)
         End If
     Next
     Sheets(2).Range("A1").Resize(1, UBound(T)) = T
End Sub
Book1.rar (12.81 KB, 下载次数: 1)
回复

使用道具 举报

发表于 2013-9-12 21:51 | 显示全部楼层
你就再提取一次吧。
Sub TEST()
    D = 1
    ARR = Range("A1:A" & Range("A65536").End(3).Row)
    ReDim T(1 To 1)
    T(D) = ARR(1, 1)
    Z = ARR(1, 1)
    For I = 2 To UBound(ARR)
        If ARR(I, 1) = Z Then
            T(D) = T(D) & Chr(10) & ARR(I, 1)
        Else
            D = D + 1
            ReDim Preserve T(1 To D)
            T(D) = ARR(I, 1)
            Z = ARR(I, 1)
        End If
    Next
    Sheets(2).Range("A1").Resize(1, UBound(T)) = T
    D = 1
    ARR = Range("B1:B" & Range("B65536").End(3).Row)
    ReDim T(1 To 1)
    T(D) = ARR(1, 1)
    Z = ARR(1, 1)
    For I = 2 To UBound(ARR)
        If ARR(I, 1) = Z Then
            T(D) = T(D) & Chr(10) & ARR(I, 1)
        Else
            D = D + 1
            ReDim Preserve T(1 To D)
            T(D) = ARR(I, 1)
            Z = ARR(I, 1)
        End If
    Next
    Sheets(2).Range("A5").Resize(1, UBound(T)) = T
End Sub
回复

使用道具 举报

 楼主| 发表于 2013-9-12 22:06 | 显示全部楼层
zjdh 发表于 2013-9-12 21:51
你就再提取一次吧。
Sub TEST()
    D = 1

我是再提了一次   但是提到sheet2第5行的时候他是左右排了   有是像1行那样上下排啊
QQ图片20130912220214.jpg
还得改那才能像1行那么显示?
回复

使用道具 举报

 楼主| 发表于 2013-9-12 22:09 | 显示全部楼层
zjdh 发表于 2013-9-12 21:51
你就再提取一次吧。
Sub TEST()
    D = 1

我把付件传上来拜托你再帮我改一下   谢谢
Book1.rar (12.81 KB, 下载次数: 1)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 18:45 , Processed in 0.172737 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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