|
发表于 2011-8-13 21:53
|
显示全部楼层
本楼为最佳答案
本帖最后由 laosanjie 于 2011-8-13 21:55 编辑
jiangslly 发表于 2011-8-13 14:47
回复 laosanjie 的帖子
这位大哥,我试了你的代码,真的很管用,但是有个问题,因为我还要对工资表查找第3 ...
但是运行的时候运行到 k = rng2.Row的时候,系统说我对象变量或with块变量未设置,请问这是什么原因?
因工资表查找第3 列里的“采购组”、“GMP稽核小组” 在汇总表的A列里没有,所以下面的语句:
Set rng2 = Range("A1:A18").Find(rng, lookat:=xlWhole)
k = rng2.Row
rng2会出现找不到的情况,也就是rng2为空,以至出错。
下面的加了判断语句 If Not rng2 Is Nothing Then 后应该可以了:
Sub huizongrenshu2()
Dim rng As Range, rng2 As Range, r As Byte, k As Byte
Dim x%
Application.ScreenUpdating = False
x = Sheet12.[B65536].End(3).Row
For i = 3 To x
Sheet4.Select
Set rng = Sheet12.Cells(i, 2)
Set rng2 = Range("A1:A18").Find(rng, lookat:=xlWhole)
If Not rng2 Is Nothing Then
k = rng2.Row
For r = 3 To 18
If rng.Value = Sheet4.Cells(r, 1).Value Then
Cells(k, 25).Value = Cells(k, 25).Value + 1
End If
Next
End If
Sheet4.Select
'Set rng = Sheet12.Cells(i, 2)
Set rng = Sheet12.Cells(i, 3)
Set rng2 = Range("A1:A18").Find(rng, lookat:=xlWhole)
If Not rng2 Is Nothing Then
k = rng2.Row
For r = 3 To 18
If rng.Value = Sheet4.Cells(r, 1).Value Then
Cells(k, 25).Value = Cells(k, 25).Value + 1
End If
Next
End If
Next
Set rng = Nothing
Set rng2 = Nothing
Application.ScreenUpdating = True
End Sub
|
|