永发信息网

excel用vba怎么在6种成绩中统计合格.

答案:2  悬赏:0  手机版
解决时间 2021-02-12 19:27
  • 提问者网友:我的未来我做主
  • 2021-02-12 03:20
excel用vba怎么在6种成绩中统计合格.
比如一行的B到G列的成绩中,只要一项或几项低于60分,A列就显示不合格.
注意用VBA,不要用函数.
谢谢.

>>>>>>>>>+++++++分啦,完美度 加 100 分

谢谢,我试了下,现在的好像是比如C2是低于60分,C1才会显示,但这样就统计不了
开始时间比较紧,没有说的很详细,现在修正一下问题,
1\结果在A列显示
2\是统计A列所在行对应的B列和G列,要显示合格和不合格,全部高于60分时,显示合格,只要一项或几项低于60分,就显示不合格.
3\另个别班级的统计成绩选项不一样时,需要单独(或另外写一段代码)来统计,这个就统计区域就行了,比如说是H6:K6.统计的结果显示在H3上面. (因为前面还有数据,而H3刚好在统计的位置,这个其实也是可以用前一个代码来完成的,我只是想知道如果想要单独统计一个区域的时候,有个简单代码修改起来很方便.帮帮忙.呵呵)

还有总共可能只需要50多行,是说数据总共只有50行,50个班级加另外一个51个班级,谢谢。

我对VBA有点菜,代码复杂有时候都不知道怎么改!帮帮忙。^_^
最佳答案
  • 五星知识达人网友:雾月
  • 2021-02-12 04:19
Sub 查找不合格项()

Dim I As Integer, J%, lastrow%
lastrow = Range("B65536").End(xlUp).Row
For I = 1 To lastrow
For J = 2 To 7
If Cells(I, J).Value < 60 Then
Cells(I, 1).Value = "不合格"
Exit For
Else
Cells(I, 1).Value = "合格"
End If
Next J
Next I
End Sub

第三个问题可以修改一下代码然后再运行。为了个别特例再去编写判断的代码,不如直接先运行完B:G区域的,然后再改下代码再运行一次。

不明白这句话的意思:另外第3个写那代码应该要简单许多吧,因为只有一项的,还有总共可能只需要50多行。能解释一下吗?或者Hi我。

Sub 查找不合格项()

Dim I As Integer, J%, lastrow%
'lastrow = Range("B65536").End(xlUp).Row
'如果不需要判断最后一行的行号,则上面这句不要,直接修改下面的语句
For I = 1 To 55
For J = 2 To 7
If Cells(I, J).Value < 60 Then
Cells(I, 1).Value = "不合格"
Exit For
Else
Cells(I, 1).Value = "合格"
End If
Next J
Next I

'增加下列内容,用来判断H6:K6中的分数,结果写入H3
For J = 8 To 11
'因为位置明确,无需判断。
If Cells(6, J) < 60 Then
Range("H3") = "不合格"
Exit For
Else
Range("H3") = "合格"
End If
Next J

End Sub
全部回答
  • 1楼网友:酒者煙囻
  • 2021-02-12 05:00
a列最底端有数据的单元格 [a65536].end(xlup).row 如果是统计每列有多少非空单元格 就要调用counta函数方便些 worksheetfunction.counta (range("a:a"))
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯