Excel精英培训网

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

[已解决]比较简单的问题

[复制链接]
发表于 2012-10-10 00:55 | 显示全部楼层 |阅读模式
出入库数量统计的,根据入库料号得出唯一料号,并计算数量,减去同一料号的出库量,得出库存。
已附上附件,谢谢!
最佳答案
2012-10-10 11:08
美斯特邦威 发表于 2012-10-10 09:23
附件上来了
谢谢

猜一个,试试这个吧,两张表的格式完全不同,对应都对应不好~~
  1. Sub text()
  2.   Dim arr(), brr(1 To 60000, 1 To 6), k As Integer, i As Integer, h As Integer
  3.   Dim a As Object
  4.   Set d = CreateObject("scripting.dictionary")
  5.   arr = Sheet2.Range("a3:l" & Sheet2.Range("a65536").End(3).Row).Value
  6.   For i = 1 To UBound(arr)
  7.       If Not d.exists(arr(i, 5)) Then
  8.          k = k + 1
  9.          d(arr(i, 5)) = k
  10.          brr(k, 1) = arr(i, 5)
  11.          brr(k, 2) = arr(i, 7)
  12.          brr(k, 4) = arr(i, 11)
  13.          brr(k, 5) = 0
  14.          brr(k, 6) = brr(k, 4) - brr(k, 5)
  15.        Else
  16.          h = d(arr(i, 5))
  17.          brr(h, 4) = brr(h, 4) + arr(i, 11)
  18.          brr(h, 6) = brr(h, 4) - brr(h, 5)
  19.       End If
  20.   Next
  21.   arr = Sheet3.Range("a3:i" & Sheet3.Range("a65536").End(3).Row).Value
  22.   For i = 1 To UBound(arr)
  23.       If d.exists(arr(i, 4)) Then
  24.          h = d(arr(i, 4))
  25.          brr(h, 5) = brr(h, 5) + arr(i, 8)
  26.          brr(h, 6) = brr(h, 4) - brr(h, 5)
  27.       Else
  28.          k = k + 1
  29.          d(arr(i, 4)) = k
  30.          brr(k, 1) = arr(i, 4)
  31.          brr(k, 2) = arr(i, 6)
  32.          brr(k, 4) = 0
  33.          brr(k, 5) = arr(i, 8)
  34.          brr(k, 6) = brr(k, 4) - brr(k, 5)
  35.       End If
  36.   Next
  37.   With Sheet1
  38.        .Range("a3:f65536").ClearContents
  39.        .Range("a3").Resize(d.Count, 6) = brr
  40.   End With
  41. End Sub
复制代码
发表于 2012-10-10 07:47 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-10-10 09:23 | 显示全部楼层
附件上来了
谢谢

收发存总表-2011-9-16.rar

272.92 KB, 下载次数: 13

回复

使用道具 举报

发表于 2012-10-10 10:27 | 显示全部楼层
美斯特邦威 发表于 2012-10-10 09:23
附件上来了
谢谢

入库明细表里的物品料号对应出库明细表的哪一列??
回复

使用道具 举报

发表于 2012-10-10 11:02 | 显示全部楼层
出库单的物料,入库明细表中都不存在,如何按入库明细建立物料总表?!
回复

使用道具 举报

发表于 2012-10-10 11:08 | 显示全部楼层    本楼为最佳答案   
美斯特邦威 发表于 2012-10-10 09:23
附件上来了
谢谢

猜一个,试试这个吧,两张表的格式完全不同,对应都对应不好~~
  1. Sub text()
  2.   Dim arr(), brr(1 To 60000, 1 To 6), k As Integer, i As Integer, h As Integer
  3.   Dim a As Object
  4.   Set d = CreateObject("scripting.dictionary")
  5.   arr = Sheet2.Range("a3:l" & Sheet2.Range("a65536").End(3).Row).Value
  6.   For i = 1 To UBound(arr)
  7.       If Not d.exists(arr(i, 5)) Then
  8.          k = k + 1
  9.          d(arr(i, 5)) = k
  10.          brr(k, 1) = arr(i, 5)
  11.          brr(k, 2) = arr(i, 7)
  12.          brr(k, 4) = arr(i, 11)
  13.          brr(k, 5) = 0
  14.          brr(k, 6) = brr(k, 4) - brr(k, 5)
  15.        Else
  16.          h = d(arr(i, 5))
  17.          brr(h, 4) = brr(h, 4) + arr(i, 11)
  18.          brr(h, 6) = brr(h, 4) - brr(h, 5)
  19.       End If
  20.   Next
  21.   arr = Sheet3.Range("a3:i" & Sheet3.Range("a65536").End(3).Row).Value
  22.   For i = 1 To UBound(arr)
  23.       If d.exists(arr(i, 4)) Then
  24.          h = d(arr(i, 4))
  25.          brr(h, 5) = brr(h, 5) + arr(i, 8)
  26.          brr(h, 6) = brr(h, 4) - brr(h, 5)
  27.       Else
  28.          k = k + 1
  29.          d(arr(i, 4)) = k
  30.          brr(k, 1) = arr(i, 4)
  31.          brr(k, 2) = arr(i, 6)
  32.          brr(k, 4) = 0
  33.          brr(k, 5) = arr(i, 8)
  34.          brr(k, 6) = brr(k, 4) - brr(k, 5)
  35.       End If
  36.   Next
  37.   With Sheet1
  38.        .Range("a3:f65536").ClearContents
  39.        .Range("a3").Resize(d.Count, 6) = brr
  40.   End With
  41. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-8 04:14 , Processed in 0.246873 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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