- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 136
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-6-6
               
|
27#
發表於 2012-4-25 10:08
| 只看該作者
回復 25# luke - Sub ex()
- Dim Mystr$, A As Range
- Set d = CreateObject("Scripting.Dictionary")
- With sheet1
- For Each sp In .Shapes
- If sp.Name Like "Check*" Then
- If sp.OLEFormat.Object.Value = 1 Then Mystr = Mystr & "," & sp.OLEFormat.Object.Caption
- End If
- Next
- For Each A In .Range(.[A10], .Cells(.Rows.Count, 1).End(xlUp)) 這邊Cells(.Rows.Count, 2)改成Cells(.Rows.Count, 1)
- k = Asc(A.Offset(, 5)) - 63
- If InStr(Mystr, A) > 0 Then
- d(k & "," & A.Offset(, 1) & "," & A.Offset(, 2)) = d(k & "," & A.Offset(, 1) & "," & A.Offset(, 2)) + A.Offset(, 3)
- End If
- Next
- End With
- For i = 2 To 4
- With Sheets(i)
- If Application.CountA(.Columns("A")) > 0 Then
- For Each A In .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp))
- A.Offset(, 3) = A.Offset(, 2) + d(i & "," & A & "," & A.Offset(, 1))
- d.Remove i & "," & A & "," & A.Offset(, 1)
- Next
- End If
- End With
- Next
- For Each ky In d.keys
- ar = Split(ky, ",")
- With Sheets(CInt(ar(0)))
- Set A = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
- A = ar(1): A.Offset(, 1) = ar(2): A.Offset(, 3) = d(ky)
- End With
- Next
- End Sub
複製代碼 |
|