- 帖子
- 2843
- 主題
- 10
- 精華
- 0
- 積分
- 2899
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2025-6-9
|
25#
發表於 2020-2-16 11:42
| 只看該作者
兩種方案, 自行選用:
Sub TEST_1()
Dim R&, Arr, Brr, i&, S&(1 To 2), V1, V2
R = Cells(Rows.Count, "K").End(xlUp).Row
If R <= 2 Then Exit Sub
Arr = Range("K2:Q" & R)
Brr = Range("M2:N" & R)
For i = 1 To UBound(Arr)
If Arr(i, 1) = "品名" Then Erase S: GoTo 101
If Arr(i, 1) = "合計" Then
Brr(i, 1) = S(1) '箱數合計
Brr(i, 2) = S(2) '瓶數合計
Erase S: GoTo 101
End If
Brr(i, 1) = "": Brr(i, 2) = ""
V1 = Val(Arr(i, 6)) '包裝數
V2 = Val(Arr(i, 7)) '訂購數
If Arr(i, 2) = "" Or V1 = 0 Then GoTo 101
Brr(i, 1) = Int(V2 / V1) '箱數
S(1) = S(1) + Brr(i, 1) '箱數累計
Brr(i, 2) = V2 Mod V1 '瓶數
S(2) = S(2) + Brr(i, 2) '瓶數累計
101: Next i
Range("M2:N" & R) = Brr
End Sub
'============================================
Sub TEST_2()
Dim R&
R = Cells(Rows.Count, "K").End(xlUp).Row
If R <= 2 Then Exit Sub
With Range("M3:N" & R)
.Formula = "=IF($K3=$K$2,M$2,IF($K3=""合計"",SUM(M$1:M2)-SUMIF($K$1:$K2,""合計"",M$1:M2)*2," & _
"IF(($L3="""")+($P3=0),"""",IF(M$2=""箱數"",INT($Q3/$P3),MOD($Q3,$P3)))))"
.Value = .Value
End With
'=============================================
End Sub |
|