|
楼主 |
发表于 2011-8-12 20:32
|
显示全部楼层
回复 那么的帅 的帖子
Sub 分类汇总()
Dim ARR3(1 To 22, 1 To 1)
With Sheets("按采购凭证进行汇总(带上物料号)")
Row1 = .Range("L65536").End(xlUp).Row
arr1 = .Range("L2:N" & Row1)
arr2 = .Range("T8:T29")
For i = 1 To UBound(arr1)
If arr1(i, 1) <> 0 Then
Select Case Left(arr1(i, 2), 2)
Case "P6"
s1 = 1
T1 = 6
For J = s1 To T1
If CStr(arr1(i, 1)) = Right(arr2(J, 1), 4) Then
ARR3(J, 1) = ARR3(J, 1) + IIf(arr1(i, 3) = "", 0, arr1(i, 3))
Exit For
End If
Next J
Case "PE"
s1 = 7
T1 = 12
For J = s1 To T1
If CStr(arr1(i, 1)) = Right(arr2(J, 1), 4) Then
ARR3(J, 1) = ARR3(J, 1) + IIf(arr1(i, 3) = "", 0, arr1(i, 3))
Exit For
End If
Next J
Case "PS"
s1 = 19
T1 = 21
For J = s1 To T1
If CStr(arr1(i, 1)) = Right(arr2(J, 1), 4) Then
ARR3(J, 1) = ARR3(J, 1) + IIf(arr1(i, 3) = "", 0, arr1(i, 3))
Exit For
End If
Next J
Case "PJ"
Select Case Mid(arr1(i, 2), 3, 1)
Case "C"
s1 = 13
T1 = 18
For J = s1 To T1
If CStr(arr1(i, 1)) = Right(arr2(J, 1), 4) Then
ARR3(J, 1) = ARR3(J, 1) + IIf(arr1(i, 3) = "", 0, arr1(i, 3))
Exit For
End If
Next J
Case Else
s1 = 22
T1 = 22
For J = s1 To T1
If CStr(arr1(i, 1)) = Right(arr2(J, 1), 4) Then
ARR3(J, 1) = ARR3(J, 1) + IIf(arr1(i, 3) = "", 0, arr1(i, 3))
Exit For
End If
Next J
End Select
End Select
End If
Next i
For J = 1 To 22
ARR3(J, 1) = Round(ARR3(J, 1), 2)
Next J
.Range("U8").Resize(UBound(ARR3), 1) = ARR3
End With
End Sub
绿色我该的 别的没动 结果就不对呀 老师帮助
|
|