|
Sub TEXT()
ARR = Sheets("奖金汇总").Range("A1").CurrentRegion
BRR = Sheets("流向汇总").Range("A1").CurrentRegion
For I = 2 To UBound(BRR)
S1 = BRR(I, 1) & "+" & BRR(I, 14)
For J = 2 To UBound(ARR)
S2 = ARR(J, 1) & "+" & ARR(J, 6)
If S1 = S2 Then
If BRR(I, 12) >= ARR(J, 2) And BRR(I, 12) <= ARR(J, 3) Then BRR(I, 20) = ARR(J, 7)
End If
Next
Next
Sheets("流向汇总").Range("A1").CurrentRegion = BRR
End Sub
之前有发过帖子询问如何用VBA查找时间范围,有老师回复了我,
由于是一只纯菜鸟,自己摸索着在老师给我的代码基础上改成了自己实际表格中使用的样子,
运行后提示下界越标,
把Then BRR(I, 20) = ARR(J, 7)改成了Then BRR(I, 19) = ARR(J, 7),就可以正常运行,不知道问题出在哪里,需要怎么修改?
另外,我的原始表奖金大致有5000条,流向汇总有将近12W条,运行代码后表格直接未响应,不知道有没有什么办法可以解决
之前帖子链接:http://club.excelhome.net/forum. ... ;page=1#pid10097851
|
|