Excel精英培训网

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

老师们,代码运行不了,帮忙优化一下

[复制链接]
发表于 2013-4-1 23:37 | 显示全部楼层 |阅读模式
本帖最后由 happy1117 于 2013-4-1 23:43 编辑

老师们,帮忙优化代码让它运行

Sub 日期比较()
    Dim Ar(), R As Long, D
    D = Worksheets("Sheet1").Range("h1").Value        (这里要怎么改呢,现在提示下标越界)
    R = Range("B65536").End(xlUp).Row
    ReDim Ar(1 To R, 1)
    Ar = Range("B2:B" & R)
    For i = 1 To UBound(Ar)
        R = Abs(DateDiff("M", D, Ar(i, 1)))
        Select Case R
            Case 0 To 2
                Ar(i, 1) = "3个月以内"
            Case 3 To 5
                Ar(i, 1) = "4-6个月"
            Case 6 To 8
                Ar(i, 1) = "7-9个月"
            Case 9 To 11
                Ar(i, 1) = "10-12个月"
            Case Else
                Ar(i, 1) = "一年以上"
        End Select
    Next
    Columns("D").Insert
    Range("D2").Resize(UBound(Ar)) = Ar
End Sub

12458.rar

12.28 KB, 下载次数: 4

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-4-1 23:48 | 显示全部楼层
  1. Sub 日期比较()
  2. Dim Ar(), R As Long, D
  3. D = Worksheets("HAT").Range("h1").Value
  4. R = Range("B65536").End(xlUp).Row
  5. ReDim Ar(1 To R, 1)
  6. Ar = Range("B2:B" & R)
  7. For i = 1 To UBound(Ar)
  8. R = Abs(DateDiff("M", D, Ar(i, 1)))
  9. Select Case R
  10. Case 0 To 2
  11. Ar(i, 1) = "3个月以内"
  12. Case 3 To 5
  13. Ar(i, 1) = "4-6个月"
  14. Case 6 To 8
  15. Ar(i, 1) = "7-9个月"
  16. Case 9 To 11
  17. Ar(i, 1) = "10-12个月"
  18. Case Else
  19. Ar(i, 1) = "一年以上"
  20. End Select
  21. Next
  22. Columns("D").Insert
  23. Range("D2").Resize(UBound(Ar)) = Ar
  24. End Sub

复制代码
回复

使用道具 举报

 楼主| 发表于 2013-4-1 23:53 | 显示全部楼层
5201314 发表于 2013-4-1 23:48

这下可以了,学习了~
回复

使用道具 举报

发表于 2013-4-3 12:45 | 显示全部楼层
happy1117 发表于 2013-4-1 23:53
这下可以了,学习了~

如果解决了,请评个最佳。谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-9 05:40 , Processed in 0.891620 second(s), 19 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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