各位大神們好
想請問一個關於EXCEL 修改參照數量的問題
『出貨』分頁是顯示出貨單 『庫存』分頁是顯示庫存單
『出貨』分頁 當在B2格打上商品編碼
A2格顯示 庫存數料 =IF(B2=0,"",IFERROR(VLOOKUP(B2,庫存,3,FALSE),""))
C3格顯示 庫存備註 =IF(B2=0,"",IFERROR(VLOOKUP(B2,庫存,4,FALSE),""))
比如在『出貨』分頁B2格輸入:AAAA
A2格顯示:10 C3格顯示:黃色*5 綠色*5
以下為『庫存』分頁的內容
A1 B1 C1 D1
商品編碼 商品名稱 庫存數量 庫存備註
AAAA 菜瓜布 10 黃色*5 綠色*5
想請問的是
如何能在『出貨』分頁可以直接修改 『庫存』分頁的 庫存數量 跟 庫存備註
而不用每次有出貨的時候 都要去點『庫存』分頁修改
請各位大神協助
感激
1. 不同顏色的菜瓜布,建立專用的商品編碼
2.在庫存分頁的A欄 商品編碼 / B欄 商品名稱 / 欄 D庫存備註 ,
做為資料庫,需輸入商品編碼 / 名稱 / 原始庫存數量
出貨分頁:
B2: =VLOOKUP($A2,庫存!$A:$D,2,0)
D2: =IF(OR(A2="",B2="~查無商品名稱~"),"",VLOOKUP($A2,庫存!$A:$D,4,0)-SUMIF(A$2:A2,A2,C$2:C2))
庫存結餘數量會依出貨分頁所搜尋到的商品編碼出貨數,由庫存分頁逐筆扣減出貨數,並顯示

若庫存分頁未建立商品編碼等基本資料時,出貨分頁會顯示"~查無商品名稱~"的錯誤訊息
庫存分頁:
C2: =IF(A2="","",D2-SUMIF(出貨!A:A,庫存!A2,出貨!C:C))
庫存數量會依出貨分頁所搜尋到的商品編碼 & 出貨數量,自動扣減庫存數量顯示

以上參考看看囉~

出貨分頁:
增加 F & G 2 行, 參照C行不同顏色的出貨數,找出數量後,再由文字格式轉成數字格式
F2: =IF(A2="","",VALUE(MID(C2,FIND("黃色",C2,1)+3,FIND("綠色",C2,1)-4)))
G2: =IF(A2="","",VALUE(MID(C2,FIND("綠色",C2,1)+3,LEN(C2)-FIND("綠色",C2,1)+3)))
增加 I & J 2行, 計算不同顏色出貨後的庫存數量
I2: =IF(A2="","",庫存!F$2-SUM(F$2:F2))
J2: =IF(A2="","",庫存!G$2-SUM(G$2:G2))
在 D 行直接將不同顏色的庫存量, 合併成文字顯示在庫存備註
D2: ="黃色*"&H2&" 綠色*"&I2

庫存分頁:
增入 F & G 2行, 依不同顏色個別輸入原始的庫存數量
C2: =IF(A2="","",SUM(MIN(出貨!H:H),MIN(出貨!I:I)))
D2: ="黃色*"&MIN(出貨!H:H)&" 綠色*"&MIN(出貨!I:I)

如果不想看到 F~J 行裡的計算資料,把儲存格裡的字體顏色改成白色就好了


這邊回報一下代碼 謝謝以上各位大大的回覆 感激
Private Sub Worksheet_Change(ByVal Target As Range)
'判別有變動就執行 'Target代表被更改的儲存格 , 'Target.row變動第幾行,Target.Column變動第幾欄
'Target的資料類型:Range,描述:變更的範圍可以是多個儲存格,傳回值:Nothing
'Target只會抓輸入值的變動,不會抓公式取值的變動,所有公式的值要另外判別
Dim C As Range
Set C = Worksheets("庫存").Range("A:A").Find(Range("B2"), LookIn:=xlValues) '先找庫存設定C為庫存的Range
If Not Intersect(Target, Range("B:B")) Is Nothing Then GoTo BC '判別B欄有變動就執行GoTo跳過判別R欄
If Not Intersect(Target, Range("R:R")) Is Nothing Then '判別R欄有變動就執行
'判別Target變動跟B或R欄有沒有變動交集,有的話就執行
BC: '判別B欄有變動就GoTo BC執行 在C3顯示目前庫存數量,並且在庫存D欄紀錄目前庫存的數量
If Range("V1") = "" Then Range("C3") = "" 'If 若 Then後面 直接執行項目 就不用 End If
'V1沒有先清空C3,避免沒庫存,資料沒更新 '若是 Then 下一行才是執行項目 就要 最後面加上 End If
If Not C Is Nothing Then '若庫存C有數值有就執行
Range("C3") = C.Offset(0, 2).Value '出貨 C3 為找到庫存找到的值
C.Offset(0, 3) = C.Offset(0, 2).Value '記錄庫存變動之前的值到庫存D欄
End If
End If
'記錄庫存變動
If Range("V1") <> Range("C3") Then '要有實際在C3上修改 才算變動 判別 C3是否等同V1
On Error Resume Next '遇到錯誤忽略,繼續執行下一句
C.Offset(0, 3) = C.Offset(0, 2).Value '記錄庫存變動之前的值到庫存D欄
C.Offset(0, 2) = Range("C3").Value '記錄庫存變動的值到庫存C欄
End If
End Sub
內文搜尋

X