|
楼主 |
发表于 2024-10-26 21:28
|
显示全部楼层
本帖最后由 divineson 于 2024-10-27 00:43 编辑
老师你好,万分抱歉,隔了这么多天才来回复,实在是感冒太严重了,感觉应该是阳了,全身都酸痛无力,称着今晚精神还可以就马上来看老师的回复了。万分感谢老师无私的帮助和指导。当时上传的文件有按老师说的重新起了模块编写排名,但出来的效果完全是乱的,应该是自己对于这一块的逻辑还没能搞明白,最后还是老师出马才搞点了。现在自己在模块2中又编号了一段O列的代码,感觉后续列的代码应该都此续编,但是代码还是没成功,还是需要老师指导一下哪出问题了,谢谢!
代码达成的需求如下:
1.优先条件M列小于下列数值时按要求扣分
2.如M列未出现下列数值则检测L列,如有大于等1的情况则N列与表5 J列的排名进行匹配,再与岗位(表5,K-M列)匹配对应的得分,如L列小于1的统一计为0分。
'O列
If arr(i, 13) < 0.3 Then
arr(i, 15) = -7.5
ElseIf arr(i, 13) < 0.4 Then
arr(i, 15) = -6
ElseIf arr(i, 13) < 0.5 Then
arr(i, 15) = -5
ElseIf arr(i, 13) < 0.6 Then
arr(i, 15) = -4
ElseIf arr(i, 13) < 0.7 Then
arr(i, 15) = -3
ElseIf arr(i, 13) < 0.8 Then
arr(i, 15) = -2
ElseIf arr(i, 13) < 0.9 Then
arr(i, 15) = -1
End If
这一段一运行就报错了,下标越界9,不太懂什么意思,是不是该列有空格所以显示出错了。
drr = Sheets(5).UsedRange
For i = 2 To UBound(drr)
arr(i, 14) = drr(i, 10)
If arr(i, 12) >= 1 And arr(i, 5) = "值班站长" Then
arr(i, 15) = drr(i, 11)
ElseIf arr(i, 12) >= 1 And arr(i, 5) = "值班员" Then
arr(i, 15) = drr(i, 12)
ElseIf arr(i, 12) >= 1 And arr(i, 5) = "站务员" Then
arr(i, 15) = drr(i, 13)
Else
arr(i, 15) = 0
End If
Next
单独运行这一段没有报错,但是也没有任何显示,水平不足,找不出其中的原因,麻烦老师再看看,指导一下,万分感谢!
|
|