|
楼主 |
发表于 2011-8-13 12:27
|
显示全部楼层
回复 无聊的疯子 的帖子
大师,谢谢你
你说的那种思路我还要仔细研究,其实我知道这种用函数最简单,但是我目前在学习阶段,所以什么方法都要去尝试,
因为汇总工资表中有一级部门也有二级部门,这要陆续查找工资表中第二列与第三列,代码如下:
Sub huizongrenshu2()
Dim i As Integer, j As Integer, s As Integer
With Sheet4
s = 0
Range(Cells(3, 25), Cells(18, 25)).ClearContents
For i = 3 To 18 '遍历部门
For j = 3 To 150 '遍历一级部门
If .Cells(i, 1) = Sheet12.Cells(j, 3) Then s = s + 1
Next j
.Cells(i, 25) = s
If .Cells(i, 1) <> Sheet12.Cells(j, 3) Then _
.Cells(i, 25).Value = .Cells(i, 25).Value
Next i
End With
End Sub
但是问题是当我运行统计二级部门的时候,一级部门的数字也出来了,而且同上一行的数据相同,但是当我汇总通过字段查找汇总工资数据的时候,却不会出现这样的问题:代码如下:
Sub huizongshuju()
Dim i As Integer, r As Integer, d As Integer, e As Integer
Dim rng As Range
Sheet4.Range("B3:Z19").ClearContents
Application.ScreenUpdating = False
If MsgBox("确定要汇总部门工资数据吗?", vbYesNo + 32, "系统提示") = vbNo Then _
Exit Sub
End If
For i = 3 To 150
Sheet4.Select
Set rng = Sheet12.Cells(i, 3)
For r = 3 To 18
For d = 2 To 24
If rng.Value = Sheet4.Cells(r, 1).Value Then
Cells(r, d).Value = Val(Cells(r, d).Value) + rng.Offset(, 3 + d).Value
End If
Next
Next
Next
Application.ScreenUpdating = True
End Sub
我就是不知道这其中的差别在哪里,请指教,具体见附件
|
|