返回列表 上一主題 發帖

[發問] 填入廠缺&註解

回復 3# 准提部林

准大,
另一類似前面的註解載入,但因為不同時間發生,需要單獨程式,
這個程式的規則比較多,我不知道怎麼下手,也請幫忙....
重新整理規則如下:(程式與 月庫存表 & 最新庫存B 是分開的檔案)   載入過允日印.rar (822.24 KB)
1) 月庫存表AU:AV欄的數據,會自行填入,只要增加註解就好,開啟方式用 *月庫存表*

2) 日期對應:來源: 最新庫存B H1 為4/21,則對應 目的檔:月庫存表.xlsx的sheet 21

3) CK_1~CK_4<0,為過允,則把對應資料,在月庫存表新增註解
最新庫存B.xlsx的對應資料如下,
CK_1 對應 日期1(GE) 對應 小計1(GQ)               
CK_2 對應 日期2(GH) 對應 小計2(GR)
CK_3 對應 日期3(GK) 對應 小計3(GS)
CK_4 對應 日期4(GN) 對應 小計4(GT)

4) 最新庫存B.xlsx的 ED:EE欄有數據的話,則 月庫存表.xlsx的 AU:AV也會填入同樣數據,且要新增註解

5) EX1
最新庫存B 的料號 A1,其CK_1 & CK_2的值<0
則新增月庫存表.xlsx註解:
AU欄
日印5/5 * 36箱
日印5/7 * 140箱
AV欄
日印5/5 * 5

6) EX2
最新庫存B 的料號 A16其CK_1 的值<0
則新增月庫存表.xlsx註解:
AV欄
日印5/9 * 215

TOP

回復 14# 准提部林

准大,
每月會變動的檔名,指定儲存格作用不大,我還是想用*月庫存表*的開啟方式,
略修改程式,可以開啟檔案,但無法載入廠缺,可否幫忙看下問題所在?
  1. Sub 載入廠缺註解()
  2. Dim Sht As Worksheet, PH$, FN$, xB As Workbook, xS As Worksheet
  3. Dim xD, xR As Range, Arr, R&, C&
  4. Application.ScreenUpdating = False
  5. Application.Calculation = xlManual
  6. Set Sht = Workbooks("最新庫存B.xlsx").Sheets("飛比")  '來源
  7. PH = "T:\範例\"
  8. FN = Dir(PH & "*月庫存表*.xlsx")
  9. Do While FN <> ""
  10. On Error Resume Next: Set xB = Workbooks(FN): On Error GoTo 0
  11. If xB Is Nothing Then Set xB = Workbooks.Open(PH & FN) '公用庫存表
  12. FN = Dir
  13. Loop

  14. xB.Activate '公用庫存表
  15. On Error Resume Next: Set xS = xB.Sheets(Day(Sht.[H1]) & ""): On Error GoTo 0  '比對日期
  16. If xS Is Nothing Then MsgBox "〔日庫存表〕不存在! ": Exit Sub
  17. If xS.[J2] = "***" Then MsgBox "本日庫存已扣除! ": Exit Sub
  18. '-------------------------------------
  19. Set xD = CreateObject("Scripting.Dictionary") '記錄[來源]欄位置
  20. For Each xR In Range(xS.[E4], xS.[E65536].End(xlUp)) '公用庫存表
  21.     If xR <> "" Then xD(xR & "") = xR.Row
  22. Next
  23. For Each xR In xS.[J3:AZ3] '記錄公用庫存表[商品名稱]列位置
  24.     If xR = "" Or xR = "合計" Then Exit For
  25.     xD(xR & "") = xR.Column
  26. Next
  27. '-------------------------------------
  28. R = Sht.[H65536].End(xlUp).Row  '以來源[商品名稱]為資料列數
  29. Arr = Sht.Range("BJ4:CB" & R)  '來源廠缺範圍
  30. For i = 1 To UBound(Arr)
  31.     R = xD(Sht.[H4].Cells(i, 1) & "") '取得來源[商品名稱]列位置
  32.     If R = 0 Then GoTo i01
  33. For j = 1 To UBound(Arr, 2)
  34.     C = xD(Sht.[BJ3].Cells(1, j) & "") '取得[來源]欄位置
  35.     If C = 0 Then GoTo j01
  36.     If Val(Arr(i, j)) = 0 Then GoTo j01
  37.     Set xR = xS.Cells(R, C)
  38. '    xR = Val(xR) - Arr(i, j) '載入廠缺,變成值
  39.     xR = "=" & Val(xR) & "-" & Arr(i, j)  '載入廠缺
  40.     xR.NoteText "PJ:" & Chr(10) & "廠缺*" & Arr(i, j) '註解的內容,Chr(10)換行
  41.     With xR.Comment.Shape '註解的框大小
  42.         .Top = xR.Top
  43.         .Left = xR.Cells(1, 2).Left + 1
  44.         .Height = xR.Height + 12
  45.         .Width = 50
  46. '        .TextFrame.Characters.Font.Size = 9   '自訂字體大小,在家可以運作,但公司不行
  47.         '.Shadow.Visible = False '取消陰影
  48.     End With

  49. j01: Next j
  50. i01: Next i
  51. xS.[J2] = "***" '扣除庫存以3星註記(避免重覆扣除)
  52. Application.Calculation = xlCalculationAutomatic
  53. Application.GoTo xS.[J3]  '公用庫存表起始列位置
  54. End Sub
複製代碼

TOP

回復 13# PJChen


檔案名稱用指定儲存格輸入內容來存取~~

TOP

回復 3# 准提部林
准大好,

因為月庫存表的名稱每個月都會不同,我想改為開啟檔案方式為 *月庫存表*
請問程式要如何修改?

TOP

回復 3# 准提部林
補充:
規則如下:
最新庫存B H1 為4/21,則對應月庫存表.xlsx的sheet 21
最新庫存B ED對應 月庫存表AU
最新庫存B EE對應 月庫存表AV
最新庫存B GA:GD的CK值<0則為過允收(有可能多筆<0,所以GA:GD的CK值,要能全部都檢視)
當EF欄(回廠數值)的合計>0,
則尋找GA:GD的CK值<0的欄位
同時最新庫存B GQ:GT的小計欄位,也是對應GA:GD的CK值
當GA:GD的CK值<0,則可取GQ:GT的小計...為過允數量

假設:
EF17>0
CK_1 >0 (無過允,不予計入)
CK_2 = 0  (無過允,不予計入)
CK_3 < 0 (過允,則GS17的小計3數值為過允)
CK_4 空白  (表示無數據,不予計入)
GQ:GT的小計欄位的所有過允合計 = EF欄的回廠合計
過允資料載入 月庫存表的相對欄位 增加註解
在AU:AV欄,增加註解文字(假設值) "日印5/9 * 12"
若有多筆過允數,則換行
日印5/9 * 12
日印5/10 * 10
....依此類推

TOP

回復 3# 准提部林

准大,
同一檔案,有其他欄位,也需用到類似的註解載入,但因為是不同時間發生,需要單獨程式, 載入過允日印.rar (820.83 KB)
規則如下:
最新庫存B H1 為4/21,則對應月庫存表.xlsx的sheet 21
最新庫存B ED對應 月庫存表AU
最新庫存B EE對應 月庫存表AV
最新庫存B GA:GD的CK值<0則為過允收
當EF欄(回廠數值)的合計>0,
則尋找GA:GD的CK值<0的欄位
EX:
EF17>0
且GA17的CK1<0
則GE17的日期1就載入月庫存表的相對欄位
在AU:AV欄,增加註解文字 "日印5/9"

TOP

回復 8# 准提部林

准大,
我改好了,謝謝!

TOP

回復 8# 准提部林

准大,
還是不行,這樣會亂抓工作表,我把程式用我現行的做法放在Macro_1
麻煩幫忙看下...感謝

範例0426.rar (259.02 KB)

TOP

回復 7# PJChen


Set Sht = ActiveSheet

TOP

本帖最後由 PJChen 於 2020-4-26 17:34 編輯

回復 6# 准提部林

准大,
我是用你回覆的檔案測試,檔案類型.xls, 因程式與平日檔案不放在一起的,所以我修改紅字部份,但無法運作,再麻煩指點!
Set Sht = Sheets("飛比")  '這裡卡住了,無法執行
FN = "月庫存表.xls": PH = "T:\範例\"
On Error Resume Next: Set xB = Workbooks(FN): On Error GoTo 0
If xB Is Nothing Then Set xB = Workbooks.Open(PH & FN)
'ThisWorkbook.Activate
xB.Activate  '這裡也有問題,無法執行

TOP

        靜思自在 : 願要大、志要堅、氣要柔、心要細。
返回列表 上一主題