返回列表 上一主題 發帖

請問可否做到自動扣減資料

請問可否做到自動扣減資料

Book1.rar (8.27 KB)
請問可否做到自動扣減。
顯示SO NO還有那些文件沒有寄出、
無論下面三個欄輸入的字是否相同,只要儲存格有資料就代表相同
I欄=O欄,無論儲存格的資料是否相同,只要這兩欄同時有資料,就代表沒有OBL
J欄=P欄,無論儲存格的資料是否相同,只要這兩欄同時有資料,就代表沒有OHC
K欄=Q欄,無論儲存格的資料是否相同,只要這兩欄同時有資料,就代表沒有CO
sheet1是資料庫,ON HAND是要的效果

回復 10# Hsieh

高人可否幫我看看下面link的程式錯在哪裡?
    http://forum.twbts.com/viewthrea ... amp;page=4#pid47882

TOP

回復 10# Hsieh


   可以了,謝謝~
但是 如果SO NO沒有收件,而先寄件,也顯示出來了。不過這種情況除非人為錯誤,否則也不會未有件就可以寄件

TOP

回復 9# 198188

應該是你的作用中工作表並非Sheet1
那就公式內參照加上工作表
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. ay = Array("OBL", "OHC", "CO")
  4. With Sheets("Sheet1")
  5. Set Rng = .Range(.[C2], .Cells(.Rows.Count, 3).End(xlUp))
  6. For Each a In Rng
  7.   If IsEmpty(d(a.Value)) Then
  8.   For i = 9 To 11
  9.   Set rng1 = .Cells(2, i).Resize(Rng.Rows.Count, 1)
  10.   Set rng2 = .Cells(2, i + 6).Resize(Rng.Rows.Count, 1)
  11.      x = Evaluate("SumProduct((" & Rng.Address(, , , 1) & "=" & a & ")*(" & rng1.Address(, , , 1) & "<>""""))")  '參照位址包含外部參照
  12.      y = Evaluate("SumProduct((" & Rng.Address(, , , 1) & "=" & a & ")*(" & rng2.Address(, , , 1) & "<>""""))")  '參照位址包含外部參照
  13.      If x = 0 Xor y = 0 Then mystr = IIf(mystr = "", ay(i - 9), mystr & "," & ay(i - 9))
  14.   Next
  15.   If mystr <> "" Then d(a.Value) = Array(a.Value, a.Offset(, 1).Value, a.Offset(, 2).Value, a.Offset(, 3).Value, mystr) Else d.Remove a.Value
  16.   mystr = ""
  17.   End If
  18. Next
  19. End With
  20. With Sheets("ON HAND")
  21. .UsedRange.Offset(1).ClearContents
  22. If d.Count > 0 Then .[A2].Resize(d.Count, 5) = Application.Transpose(Application.Transpose(d.items))
  23. End With
  24. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 8# Hsieh


   
.[A2].Resize(d.Count, 5) = Application.Transpose(Application.Transpose(d.items))
出現error RUN-TIME ERROR'13':  TYPE MISMATCH

TOP

  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. ay = Array("OBL", "OHC", "CO")
  4. With Sheets("Sheet1")
  5. Set rng = .Range(.[C2], .Cells(.Rows.Count, 3).End(xlUp))
  6. For Each a In rng
  7.   If IsEmpty(d(a.Value)) Then
  8.   For i = 9 To 11
  9.   Set rng1 = .Cells(2, i).Resize(rng.Rows.Count, 1)
  10.   Set rng2 = .Cells(2, i + 6).Resize(rng.Rows.Count, 1)
  11.      x = Evaluate("SumProduct((" & rng.Address & "=" & a & ")*(" & rng1.Address & "<>""""))")
  12.      y = Evaluate("SumProduct((" & rng.Address & "=" & a & ")*(" & rng2.Address & "<>""""))")
  13.      If x = 0 Xor y = 0 Then mystr = IIf(mystr = "", ay(i - 9), mystr & "," & ay(i - 9))
  14.   Next
  15.   If mystr <> "" Then d(a.Value) = Array(a.Value, a.Offset(, 1).Value, a.Offset(, 2).Value, a.Offset(, 3).Value, mystr) Else d.Remove a.Value
  16.   mystr = ""
  17.   End If
  18. Next
  19. End With
  20. With Sheets("ON HAND")
  21. .UsedRange.Offset(1).ClearContents
  22. .[A2].Resize(d.Count, 5) = Application.Transpose(Application.Transpose(d.items))
  23. End With
  24. End Sub
複製代碼
回復 7# 198188
學海無涯_不恥下問

TOP

回復 6# GBKEE
Book1.rar (8.68 KB)
SO NO 111111 分別收到OBL*3, OHC, CO ; 及分別寄出OHC
所以
SO NO        BUYER        AGENT        ETA                            DOCS LIST
111111        A        AA        23-Oct-12        OBL,CO

SO NO 222222 分別收到CO*2, OBL, OHC ; 及分別寄出OHC, CO
所以
SO NO        BUYER        AGENT        ETA                            DOCS LIST
222222        B        BB        15-Nov-12        OBL

SO NO 333333 分別收到 OBL, OHC, CO ; 及分別寄出 CO, OHC, OBL
所以
SO NO        BUYER        AGENT        ETA                            DOCS LIST

SO NO 444444 分別收到 OBL, OHC, CO ; 及分別寄出 OHC, CO
所以
SO NO        BUYER        AGENT        ETA                            DOCS LIST   
444444        D        DD        25-Dec-12        OBL

I欄和O欄不管儲存格內容是什麼,只要儲存格內有資料,電腦就自動默認它是OBL
J欄和P欄不管儲存格內容是什麼,只要儲存格內有資料,電腦就自動默認它是OHC
K欄和Q欄不管儲存格內容是什麼,只要儲存格內有資料,電腦就自動默認它是CO

TOP

回復 5# 198188
1#的說明對與附檔[ON HAND]的範例接不上啊!!請在說明看看.

TOP

回復 3# GBKEE

Book1.rar (8.62 KB)


見到了,可能不小心打多了,現附上更正的附件。

TOP

回復 3# GBKEE


    沒有兩欄SO,我剛才打開都沒有?只有item no and SO

你是不是問SO內的資料相同?

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題