- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
2#
發表於 2015-5-18 16:02
| 只看該作者
回復 1# OsakaKYC
試試看- Option Explicit
- Sub Ex()
- Dim D As Object, S As Variant, i As Integer
- Dim xSum As Single, E As Range, Msg As String
- Dim 料號 As String
- Set D = CreateObject("scripting.dictionary") '字典物件
- With Sheets("成本")
- i = 2
- Do While .Cells(i, "B") <> "" '料號欄
- D(Trim(.Cells(i, "B"))) = .Cells(i, "C").Value '料號的成本
- i = i + 1
- Loop
- End With
- For Each E In Sheets("2014年維修明細").UsedRange.Columns("B:C").Cells
- If E.NoteText <> "" Then
- xSum = 0
- S = Split(Trim(E.NoteText), vbLf)
- For i = 1 To UBound(S)
- If Len(S(i)) > 0 Then
- 料號 = Trim(Split(S(i), "*")(0))
- If D.EXISTS(料號) = False Then '料號不存在
- Msg = Msg & vbLf & Trim(Split(S(i), "*")(0))
- End If
- xSum = xSum + (D(料號) * Val(Split(S(i), "*")(1))) '成本累計
- End If
- Next
- E = xSum
- End If
- Next
- If Msg <> "" Then MsgBox Msg, , "料號不存在"
- End Sub
複製代碼 |
|