Board logo

標題: 每日進貨與歷史庫存資料 [打印本頁]

作者: zero1019    時間: 2014-9-19 00:27     標題: 每日進貨與歷史庫存資料

我的檔案有兩張sheet   「進貨」、「歷史進貨」
每天「進貨」sheet都會不一樣,而「歷史進貨」就是把每天「進貨」保留下來
[attach]19182[/attach]
-------------------------------------------------------------------------------------
DAY1  「進貨」 有 A1、A3、B1、B2  四種商品
則「歷史進貨」就會有A1、A3、B1、B2  四種商品

到了第二天
DAY2 「進貨」進了 A1、A3、B1、C1、C2 五種商品
則「歷史進貨」就會 A1、A3、B1、B2、C1、C2  六種商品

到了第三天  
DAY2 「進貨」進了 A3、B1、C1、C2、C3
則「歷史進貨」就會 A1、A3、B1、B2、C1、C2 、C3 七種商品

也就是過去曾經進貨的資料  我要留下來  新增的進貨商品  直接加在下面  
我本來想再「歷史進貨」寫公式  但不管怎麼寫 歷史資料總是無法保留  >"<
想請問各位有沒有好方法??  感謝大家~

[attach]19180[/attach]
作者: luhpro    時間: 2014-9-20 03:49

我的檔案有兩張sheet   「進貨」、「歷史進貨」
每天「進貨」sheet都會不一樣,而「歷史進貨」就是把每天「 ...
zero1019 發表於 2014-9-19 00:27
  1. Private Sub cbTran_Click()
  2.   Dim lSRow&, lTRow&
  3.   Dim vD
  4.   Dim wsSou As Worksheet
  5.   
  6.   Set vD = CreateObject("Scripting.Dictionary")
  7.   lSRow = 2
  8.   Set wsSou = Sheets("歷史進貨")
  9.   With wsSou
  10.     Do While .Cells(lSRow, 1) <> ""
  11.       With .Cells(lSRow, 1)
  12.         vD(.Value) = .Offset(, 2)
  13.       End With
  14.       lSRow = lSRow + 1
  15.     Loop
  16.   End With
  17.   
  18.   lTRow = 2
  19.   With Sheets("進貨")
  20.     Do While .Cells(lTRow, 1) <> ""
  21.       With .Cells(lTRow, 1)
  22.         If Not vD.Exists(.Value) Then
  23.           vD(.Value) = .Offset(, 1)
  24.           wsSou.Cells(lSRow, 1) = .Value
  25.           wsSou.Cells(lSRow, 2) = .Offset(, 1)
  26.           lSRow = lSRow + 1
  27.         End If
  28.         .Resize(1, 2).Delete xlShiftUp
  29.       End With
  30.     Loop
  31.     MsgBox "歷史進貨資料已更新完畢..."
  32.     .Cells(2, 1).Select
  33.   End With
  34. End Sub
複製代碼
[attach]19189[/attach]
作者: zero1019    時間: 2014-9-24 11:52

回復 2# luhpro


    好厲害~~~感謝感謝~~我來研究一下  ^^




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)