- ©«¤l
- 354
- ¥DÃD
- 5
- ºëµØ
- 0
- ¿n¤À
- 387
- ÂI¦W
- 0
- §@·~¨t²Î
- windows7
- ³nÅ骩¥»
- vba,vb,excel2007
- ¾\ŪÅv
- 20
- ©Ê§O
- ¨k
- µù¥U®É¶¡
- 2017-1-8
- ³Ì«áµn¿ý
- 2024-8-2
 
|
Sub Ü®w®w¦s()
Set d = CreateObject("Scripting.Dictionary")
r = Sheets("§÷®Æªí").Cells(Rows.Count, 1).End(3).Row
For Each Z In Sheets("§÷®Æªí").Range("a2:a" & r)
d(Z.Value) = Z.Row - 1
Next
'1 '2 '3 8 7 9 10 11
sA = Split("¥þ¾÷ºØBOM,¤½¥q½LÂI,¤J®w©ú²Ó,A»Ý¨D,B»Ý¨D,°h®w,¼o®ÆÜ,«ü¹Ï©ú²Ó", ",")
sB = Split("p:z,a:g,o:r,a:h,a:h,a:c,a:c,f:l", ",")
ReDim Ar(1 To d.Count, 1 To 11) As Double
For i = 0 To UBound(sA) '©ñ¸ê®Æ
Set s = Sheets(sA(i))
sC = Split(sB(i), ":")
r = s.Cells(Rows.Count, sC(0)).End(3).Row
c = Split("1,2,3,8,7,9,10,11", ",")(i)
For j = 1 To r
If d.exists(s.Cells(j, sC(0)).Value) Then
Ar(d(s.Cells(j, sC(0)).Value), c) = Ar(d(s.Cells(j, sC(0)).Value), c) + s.Cells(j, sC(1)).Value
End If
Next
Next
For i = 1 To UBound(Ar) 'pºâ¤@¤U
a23910 = Ar(i, 3) + Ar(i, 2) - Ar(i, 9) - Ar(i, 10)
Ar(i, 6) = a23910 - Ar(i, 11) - Ar(i, 8) - Ar(i, 7)
Ar(i, 5) = a23910 - Ar(i, 11)
Ar(i, 4) = a23910 - Ar(i, 1)
If Ar(i, 4) >= 0 Then Ar(i, 4) = 0
Next
Sheets("Ü®w®w¦s").Range("c4").Resize(UBound(Ar) - 1, 11) = Ar
End Sub |
|