返回列表 上一主題 發帖

[發問] 對應日期貼盤點資料

回復 40# 軒云熊

熊大好,
這次檔案,是修改正式檔,測試時盤點資料截取的情形
1) 鮮花點庫存表 盤點資料,保久乳的部份無法貼上
2) 萬達庫存表 盤點資料,無法貼上
3) 佳佳好中壢廠庫存表 12/14 盤點資料,無法貼上
這個庫存表比較特殊,例如:14工作表的資料,就與其他都不相同,
這個只在專案時才會出現,約有2~3個工作表是特殊工作表,這次只做一個14特殊工作表

另外在正式檔的作業,連期初都無法正常貼上,但在測試檔則幾乎都正常
修改正式檔測試_20211212.rar (1.1 MB)

TOP

本帖最後由 軒云熊 於 2021-12-13 12:53 編輯

回復 41# PJChen

我試 期末 可以貼到 期初  沒有問題 妳是指 舊的 盤點資料
Workbooks("多客戶盤點表.xlsx").Sheets("stock") 是甚麼作用?
可否在說明一次 細節步驟 感謝

TOP

回復 42# 軒云熊
熊大好,
這次檔案,是修改正式檔,測試時二欄式盤點資料截取的情形
1) 鮮花點庫存表 盤點資料,保久乳的部份無法貼上,以12/11測試
2) 萬達庫存表 盤點資料,無法貼上,以12/11測試
3) 佳佳好中壢廠庫存表 12/14 盤點資料,無法貼上
這個庫存表比較特殊,例如:14工作表的資料,就與其他都不相同,
這個只在專案時才會出現,約有2~3個工作表是特殊工作表,這次只做一個14特殊工作表
以上是在測試檔時,發現的不正常情形,請先幫忙看有問題的部份

另外在正式檔的作業,連期初都無法正常貼上,
這個是指我平日使用的所有檔案,期初都無正常貼上居多
這些檔明年度還會再換一批新檔,屆時再測試看看

TOP

回復 43# PJChen

請問妳的表格格式 包含多客戶盤點表和其他檔案  是否都不固定?

TOP

回復 44# 軒云熊

熊大好,
1) 多客戶盤點表...欄位部份基本上是不變的,列的部份因為包含了客戶及品名,
當客戶or產品增加,就一定會隨著變動
因為程式的依據之一就是客戶&產品,不應該受影響才是!

2) 各客戶的庫存表,採二欄合併,明年度開始原三欄合併的萬達,也改為二欄
欄位部份基本上,在盤點資料前的,不會改變,這次只有萬達在盤點欄位前有增加一欄,
但寫程式時不是以"盤點"二字,尋找範圍定位點?
後來新增的期初數據,也是以"期末"二字,尋找範圍定位點

列的部份因為包含品名,當產品結束,或增加產品,列數一定會有增加or減少!

TOP

本帖最後由 軒云熊 於 2021-12-14 13:29 編輯

回復 45# PJChen

有空再幫我試試看行不行 感謝  但 迴圈變多了用了7個迴圈..... 速度也會變慢看看有沒有大大可以幫忙^^"
    javascript:;

Macro_1_1214.rar (37.31 KB)

TOP

本帖最後由 軒云熊 於 2021-12-14 14:21 編輯

回復 45# PJChen

這是加入 期末和盤點 一起比對 有空再幫我試試看還有沒有問題 感謝

Macro_1_1214_.rar (40.71 KB)

TOP

回復 47# 軒云熊
熊大好,
請問現將期初&盤點合為一個程式,原先是希望分成二個程式的!
因為有時會分開使用....

目前只能先以測試檔測試
發現盤點無數據時,無法貼上期初值

TOP

本帖最後由 軒云熊 於 2021-12-15 08:55 編輯

回復 48# PJChen

發現盤點無數據時,無法貼上期初值    <----把判斷註解了

已經把程式 複製並分開了 有空再幫我試試看 有問題再跟我說 感謝


Macro_1_1215.rar (44.32 KB)

TOP

本帖最後由 准提部林 於 2021-12-15 21:14 編輯

沒詳細看要抓什麼數據, 隨便寫一個參考, 自行了解程式碼再根據需求改改:
Sub 盤點_期初庫存()
Dim Arr, DD, PH$, FN1$, FN2$, FT$
Dim xB1 As Workbook, xS1 As Worksheet, xB2 As Workbook, xS2 As Worksheet
Dim xF1 As Range, xF2 As Range, TT$, DY
Application.ScreenUpdating = False
PH = ThisWorkbook.Path & "\"
FN2 = Range("B8")
If FN2 = "" Then MsgBox "指定檔名稱未輸入!  ": Exit Sub
FN2 = Dir(PH & FN2 & "*.xls*")
If FN2 = "" Then MsgBox "指定檔不存在!  ": Exit Sub
'----------------------------------
FN1 = "多客戶盤點表.xls"
On Error Resume Next: Set xB1 = Workbooks(FN1): On Error GoTo 0
If xB1 Is Nothing Then Set xB1 = Workbooks.Open(PH & FN1)
'-----------------------------------
On Error Resume Next: Set xB2 = Workbooks(FN2): On Error GoTo 0
If xB2 Is Nothing Then Set xB2 = Workbooks.Open(PH & FN2)
FT = Split(FN2, "倉庫")(0) '截取[客戶]名稱
'-----------------------------------
ThisWorkbook.Activate
Set xS1 = xB1.Sheets("盤點")
DD = xS1.[e4]
Arr = Range(xS1.[di1], xS1.[a6536].End(3))
For i = 6 To UBound(Arr) Step 2
    TT = Arr(i, 5) '品名
    DY = Day(DD + Arr(i, UBound(Arr, 2)) - 1) '日期--day..以 di 欄取當天或前一天
    If Arr(i, 1) <> FT Or TT = "" Then GoTo i01
    On Error Resume Next: Set xS2 = xB2.Sheets(DY & ""): On Error GoTo 0
    If xS2 Is Nothing Then GoTo i01
    Set xF1 = xS2.Cells.Find("期末", Lookat:=xlWhole) '找[期末庫存]位置
    Set xF2 = xS2.[b:b].Find(TT, Lookat:=xlWhole) '找B欄[品名]位置
    If xF1 Is Nothing Or xF2 Is Nothing Then GoTo i01
    xS1.Cells(i, 13) = xS2.Cells(xF2.Row, xF1.Column)
i01: Next i
MsgBox "期初庫存載入完成, 多客戶盤點表尚未儲存, 若確定無誤再手動存檔!  "
End Sub

TOP

        靜思自在 : 生氣,就是拿別人的過錯來懲罰自己。
返回列表 上一主題