Excel精英培训网

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

[已解决]请各位老师帮忙看一下,这个多条件查询汇总的VBA代码如何修改?

[复制链接]
发表于 2014-5-29 15:43 | 显示全部楼层 |阅读模式
5学分
本帖最后由 lifeinfo 于 2014-5-29 17:47 编辑

我做了一个仓库的进出库表格,其中入库数据表内“已发货数量支”这一列的数据需要从“出库数据”表中汇总过来,本来是想直接用VBA代码汇总,但因为我的VBA水平实在太烂,参考其他老师提供的代码修改过来后总是不行,所以暂时只好用写入公式的办法替代。麻烦老师帮忙看一下直接汇总的代码应该如何写,非常感谢!
最佳答案
2014-5-29 17:07
附件请测试,为了方便对比,暂且输出在N列,确认无误后可以改到J列。
  1. Private Sub CommandButton1_Click()
  2. Dim arr, arr1, i&, d As Object, s$
  3. Set d = CreateObject("scripting.dictionary")
  4. arr = Range("d2:g" & [d65536].End(3).Row)
  5. arr1 = Sheets(2).Range("c2:f" & Sheets(2).[c65536].End(3).Row)
  6. For i = 1 To UBound(arr1)
  7.   d(arr1(i, 1) & "," & arr1(i, 2) & "," & arr1(i, 3)) = arr1(i, 4)
  8. Next i
  9. For i = 1 To UBound(arr)
  10.   s = arr(i, 1) & "," & arr(i, 2) & "," & arr(i, 3)
  11.   If d.exists(s) Then arr(i, 4) = d(s) Else arr(i, 4) = 0
  12. Next i
  13. [n2].Resize(UBound(arr)) = Application.Index(arr, , 4)
  14. End Sub
复制代码

库存管理系统-请教.rar

135.1 KB, 下载次数: 21

发表于 2014-5-29 17:07 | 显示全部楼层    本楼为最佳答案   
附件请测试,为了方便对比,暂且输出在N列,确认无误后可以改到J列。
  1. Private Sub CommandButton1_Click()
  2. Dim arr, arr1, i&, d As Object, s$
  3. Set d = CreateObject("scripting.dictionary")
  4. arr = Range("d2:g" & [d65536].End(3).Row)
  5. arr1 = Sheets(2).Range("c2:f" & Sheets(2).[c65536].End(3).Row)
  6. For i = 1 To UBound(arr1)
  7.   d(arr1(i, 1) & "," & arr1(i, 2) & "," & arr1(i, 3)) = arr1(i, 4)
  8. Next i
  9. For i = 1 To UBound(arr)
  10.   s = arr(i, 1) & "," & arr(i, 2) & "," & arr(i, 3)
  11.   If d.exists(s) Then arr(i, 4) = d(s) Else arr(i, 4) = 0
  12. Next i
  13. [n2].Resize(UBound(arr)) = Application.Index(arr, , 4)
  14. End Sub
复制代码

库存管理系统-请教.zip

339.39 KB, 下载次数: 54

回复

使用道具 举报

 楼主| 发表于 2014-5-29 17:46 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-1 09:02 | 显示全部楼层
学习了。。。
回复

使用道具 举报

发表于 2014-6-2 21:54 | 显示全部楼层
学习
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 09:57 , Processed in 0.306080 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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