- 帖子
- 1018
- 主題
- 15
- 精華
- 0
- 積分
- 1058
- 點名
- 0
- 作業系統
- win7 32bit
- 軟體版本
- Office 2016 64-bit
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 桃園
- 註冊時間
- 2012-5-9
- 最後登錄
- 2022-9-28
|
11#
發表於 2013-1-12 17:36
| 只看該作者
回復 8# adam2010 - Sub Test()
- Dim rng As Range
- Dim s1 As Long, s2 As Long
- Dim cindex As Long
- With Sheets("出貨日")
- Set rng = .Range(.[A1], .[A1].End(xlToRight).End(xlDown).Offset(, -1)) '[出貨日]資料範圍
- End With
- For Each c In Sheets("交期").Range("E2:E" & Sheets("交期").[A1].End(xlDown).Row) '[交期]資料填入範圍
- If c.Offset(, -4).Value <> c.Offset(-1, -4).Value Then
- cindex = 1
- s1 = 0 '累積至前一批數量
- s2 = 0 '累積出貨需求數量
- Else
- s1 = s1 + c.Offset(-1, -1).Value
- End If
-
- Do While s2 <= s1
- cindex = cindex + 1
- If Application.IsError(Application.VLookup(c.Offset(, -4).Value, rng, cindex, False)) Then
- Exit Do
- Else
- s2 = s2 + Application.VLookup(c.Offset(, -4).Value, rng, cindex, False)
- End If
- Loop
-
- If s2 <= s1 Then
- c.Value = "NA"
- Else
- c.Value = rng.Cells(1, cindex).Value
- End If
- Next
- Set rng = Nothing
- End Sub
複製代碼 |
|