Excel精英培训网

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

[已解决]谢谢爱疯老师,请看看我错在哪儿了

[复制链接]
发表于 2010-11-3 17:41 | 显示全部楼层 |阅读模式

hUoTtXc3.rar (23.1 KB, 下载次数: 13)

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2010-11-3 18:18 | 显示全部楼层

Sub 提取1()    '方法1
    Dim arr(), arr2(), i, s, t

    t = Timer
    Application.ScreenUpdating = False
    arr = Sheet2.Range("a5:u" & Sheet2.[c65536].End(xlUp).Row)    '[数据源]C列客户编号
    ReDim arr2(1 To UBound(arr), 1 To 5)
   
    For i = 1 To UBound(arr)
        'If arr(i , 16) <= aa And arr(i , 16) >= Sht2.[m27] Then
        'If arr(i , 3) <> "" And arr(i , 3) <> "客户编号" Then
        If arr(i, 3) <> "" Then
            'If Len(arr(i , 3)) = 0 Then
            s = s + 1
            arr2(s, 1) = arr(i, 12)     '参考码3/分配号
            arr2(s, 2) = arr(i, 1)     '公司代码
            arr2(s, 3) = arr(i, 6)     '客户名称
            arr2(s, 4) = arr(i, 1) & arr(i, 12) & arr(i, 6)       '客户名称2
            arr2(s, 5) = arr(i, 15)     '金额
        End If
    Next i
   
    With Sheet3
        .Columns("A:E").Clear
        .Range("a1").Resize(s, 5) = arr2
    End With
    Application.ScreenUpdating = True
    MsgBox Timer - t
End Sub

[em09]
回复

使用道具 举报

发表于 2010-11-3 18:19 | 显示全部楼层

3个都改好了,看看还有什么问题,改的地方在代码里注明了

 

syh5AqAP.rar (26.18 KB, 下载次数: 14)
回复

使用道具 举报

 楼主| 发表于 2010-11-3 19:56 | 显示全部楼层

回复:(那么的帅)3个都改好了,看看还有什么问题,改...

谢谢爱疯老师和那么的帅老师

不过,您们两位都只实现了将[数据源]C列不为空的记录提取出来

而我的需求是将C列不为空,同时不等于“客户编号”这四个汉字的记录提取出来,请再看看该怎么改?

回复

使用道具 举报

发表于 2010-11-3 20:33 | 显示全部楼层    本楼为最佳答案   


Sub 提取1()    '方法1
    Dim arr(), arr2(), i, s, t

    t = Timer
    Application.ScreenUpdating = False
    arr = Sheet2.Range("a5:u" & Sheet2.[c65536].End(xlUp).Row)    '[数据源]C列客户编号
    ReDim arr2(1 To UBound(arr), 1 To 5)

    For i = 1 To UBound(arr)
        If Len(arr(i, 3)) <> 0 Then
            If arr(i, 3) <> "客户编号" Then
                s = s + 1
                arr2(s, 1) = arr(i, 12)     '参考码3/分配号
                arr2(s, 2) = arr(i, 1)     '公司代码
                arr2(s, 3) = arr(i, 6)     '客户名称
                arr2(s, 4) = arr(i, 1) & arr(i, 12) & arr(i, 6)       '客户名称2
                arr2(s, 5) = arr(i, 15)     '金额
            End If
        End If
    Next i

    With Sheet3
        .Columns("A:E").Clear
        .Range("a1").Resize(s, 5) = arr2
    End With
    Application.ScreenUpdating = True
    MsgBox Timer - t
End Sub
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 09:45 , Processed in 0.593192 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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