Excel精英培训网

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

[已解决]代码解释(14年可以用到了15年就不行了)我该怎么改??

[复制链接]
发表于 2015-1-8 16:36 | 显示全部楼层 |阅读模式
本帖最后由 文轩馨婷 于 2015-1-8 18:43 编辑

代码解释(14年可以用到了15年就不行了)我该怎么改??

求助求助!!!(顺便帮忙解释一下红色字体的中文意思!!)

Sub 汇总数据()
   Dim arr, er(), x, k, d, rq
   On Error GoTo m
   Set d = CreateObject("scripting.dictionary")
      arr = Sheets("北海出货明细").Range("A1").CurrentRegion.Offset(1)
      ReDim er(1 To UBound(arr), 1 To 5)
      For x = 1 To UBound(arr)
      rq = Year(Date) & "-" & Sheet1.[F2]
         If Format(arr(x, 1), "yyyy-m") = rq Then            
            If d.exists(arr(x, 2)) Then
               er(d(arr(x, 2)), 4) = er(d(arr(x, 2)), 4) + arr(x, 6)
            Else

               k = k + 1
               d(arr(x, 2)) = k
               er(k, 1) = arr(x, 2)
               er(k, 2) = arr(x, 3)
               er(k, 3) = arr(x, 7)
               er(k, 4) = arr(x, 6)
               er(k, 5) = arr(x, 8)
            End If
          End If
       Next
       With Range("a3")
       .Resize(k + 50, 5).Value = ""
       .Resize(k, 5).Value = er

       End With
      Exit Sub
m:        MsgBox "您选的月份尚未出货", 1 + 64, "温馨提示"
End Sub


{:251:}
最佳答案
2015-1-8 18:02
北海走货数2.rar (77.99 KB, 下载次数: 9)

2014年北海走货数.rar

73.75 KB, 下载次数: 7

 楼主| 发表于 2015-1-8 16:41 | 显示全部楼层
附件已上传!!

拜托各位大侠!!!
回复

使用道具 举报

发表于 2015-1-8 16:47 | 显示全部楼层
文轩馨婷 发表于 2015-1-8 16:41
附件已上传!!

拜托各位大侠!!!

测试没有问题啊

回复

使用道具 举报

 楼主| 发表于 2015-1-8 16:57 | 显示全部楼层
JLxiangwei 发表于 2015-1-8 16:47
测试没有问题啊

大侠:
   附件我已上传了,真无法汇总——12月31日还能今天用就不行了!
回复

使用道具 举报

发表于 2015-1-8 17:32 | 显示全部楼层
rq = Year(Date) & "-" & Sheet1.[F2]

Year(Date)得出的是当前的年份,所以是2015,你的明细都是2014的,当然得不到数据
把它修改为下面的语句就好

rq = "2014-" & Sheet1.[F2]
回复

使用道具 举报

 楼主| 发表于 2015-1-8 17:39 | 显示全部楼层
芐雨 发表于 2015-1-8 17:32
rq = Year(Date) & "-" & Sheet1.[F2]

Year(Date)得出的是当前的年份,所以是2015,你的明细都是2014的 ...

其实我也大概看出是这里错了,我改成rq = (Year(Date)-1) & "-" & Sheet1.[F2]  不行,我还以为别的地方还有错!

也就是说不能跨年汇总!
回复

使用道具 举报

 楼主| 发表于 2015-1-8 18:00 | 显示全部楼层
芐雨 发表于 2015-1-8 17:32
rq = Year(Date) & "-" & Sheet1.[F2]

Year(Date)得出的是当前的年份,所以是2015,你的明细都是2014的 ...

麻烦帮忙解释一下红色字体代码的中文咯!!

拜托拜托!
回复

使用道具 举报

发表于 2015-1-8 18:02 | 显示全部楼层    本楼为最佳答案   
北海走货数2.rar (77.99 KB, 下载次数: 9)
回复

使用道具 举报

 楼主| 发表于 2015-1-8 18:43 | 显示全部楼层
爱疯 发表于 2015-1-8 18:02
看看有问题吗

经测试没有问题,也可跨年使用!
If d.exists(arr(x, 2)) Then
                er(d(arr(x, 2)), 4) = er(d(arr(x, 2)), 4) + arr(x, 6) 这句意思是不是物料编码相同的走货数相加?

可否在加个“MsgBox”——没有当前年月的数据有提示!


谢谢!!
回复

使用道具 举报

发表于 2015-1-8 21:53 | 显示全部楼层
文轩馨婷 发表于 2015-1-8 18:43
经测试没有问题,也可跨年使用!
If d.exists(arr(x, 2)) Then
                er(d(arr(x, 2)), 4)  ...

是的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 07:29 , Processed in 0.166776 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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